【问题标题】:Where rails view finds these methods?rails view 在哪里找到这些方法?
【发布时间】:2020-07-05 20:54:31
【问题描述】:

我已经使用 Rails 将近 1 年了,作为一个学习者,对我来说最困难的事情是视图。

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

所以我多次遇到此问题,无法找出视图如何自动找到此方法。

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

【问题讨论】:

  • 能否请您提供完整的视图块而不是一个词。

标签: ruby-on-rails methods actionview


【解决方案1】:

您应该使用 ruby​​ 方法 source_location 来了解定义方法的位置。

但是您需要在可以访问它的上下文中执行它。所以,如果它是助手,那么你可以在 rails console 中尝试类似 helper.method(:index).source_location 的内容

如果它不是一个助手(因为它似乎不是),然后尝试添加一个断点,例如运行method(:index).source_location,你应该能够找到它

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

【讨论】:

    【解决方案2】:

    了解方法在何处以及如何定义的一种简单方法是使用pry-byebugbinding.pry

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2022-01-03
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多