Rails 如何检查控制器的索引是否存在?

4
有没有一种方法可以检查控制器是否存在索引操作?类似于下面这样的代码:
Controller.indexActionExists?

我看到过一些帖子来检查特定路由是否存在,但是这些方法对我不起作用,因为我的一些索引操作没有与路由相关联。


为什么你想要这样做呢...? - sevenseacat
我正在使用link_to创建一个索引页面,但由于未实施的控制器无法实现索引,所以一直出现错误。如果我能够捕获坏的link_to,那也可以,但它必须比仅检查URL是否存在更好,因为问题首先就是将URL放在外面。 - Ester Lin
1个回答

7
action_methods 方法是在这种情况下最有效的工具,它返回一个方法名称的 Set。试一下以下代码:
# Get a set of method names belonging to a controller called 'MyController'

methods = MyController.action_methods

if methods.include? "index"
  puts "MyController has an index method"
else
  puts "MyController lacks an index method"
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接