Rails视图在哪里找到这些方法?

问题描述 投票:0回答:2

我在Rails工作了将近1年,作为一名学习者,对我来说最困难的事情是视图方面的东西。

我有嵌入此文件的查看文件:<%= index %>。我试图找到在代码中定义此方法的位置。我搜索并找到了index的12个定义,但没有一个在帮助程序中。我用谷歌搜索(有时options_from_collection_for_select OMG之类的奇怪名称:<>似乎是ActionView库的一部分)我也没有在Action View内容中找到它。

因此,我多次遇到此问题,无法确定视图如何自动找到此方法。

您能指导我在哪里搜索吗?

ruby-on-rails methods actionview
2个回答
0
投票

您应该使用ruby方法source_location来知道方法的定义位置。

但是您需要在可以访问它的上下文中执行它。因此,如果有帮助,则可以在rails console中尝试类似helper.method(:index).source_location的内容

如果不是帮助者(似乎不是帮助者,则尝试添加一个断点,然后运行method(:index).source_location,您应该可以找到它]

但是,您确定它不是局部变量,不是在调用局部变量时还是从each_with_index块给出的?在没有更多上下文的情况下命名方法索引真的很奇怪:/


0
投票

知道方法的位置和方式的一种简单方法是使用pry-byebugbinding.pry

您可以在视图文件中放入<% binding.pry %>,重新加载页面,然后通过在Rails服务器输出中出现的命令提示符中输入show-source method_name来查看所需方法的源。 (在您的情况下为show-source index。)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.