我在Rails工作了将近1年,作为一名学习者,对我来说最困难的事情是视图方面的东西。
我有嵌入此文件的查看文件:<%= index %>
。我试图找到在代码中定义此方法的位置。我搜索并找到了index
的12个定义,但没有一个在帮助程序中。我用谷歌搜索(有时options_from_collection_for_select
OMG之类的奇怪名称:<>似乎是ActionView库的一部分)我也没有在Action View内容中找到它。
因此,我多次遇到此问题,无法确定视图如何自动找到此方法。
您能指导我在哪里搜索吗?
您应该使用ruby方法source_location
来知道方法的定义位置。
但是您需要在可以访问它的上下文中执行它。因此,如果有帮助,则可以在rails console
中尝试类似helper.method(:index).source_location
的内容
如果不是帮助者(似乎不是帮助者,则尝试添加一个断点,然后运行method(:index).source_location
,您应该可以找到它]
但是,您确定它不是局部变量,不是在调用局部变量时还是从each_with_index
块给出的?在没有更多上下文的情况下命名方法索引真的很奇怪:/
知道方法的位置和方式的一种简单方法是使用pry-byebug的binding.pry
。
您可以在视图文件中放入<% binding.pry %>
,重新加载页面,然后通过在Rails服务器输出中出现的命令提示符中输入show-source method_name
来查看所需方法的源。 (在您的情况下为show-source index
。)