作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在快速了解现有的 Rails 项目,并且想知道模型 (ActiveRecord) 中的特定属性(字段)在哪里被修改。在 Java 中,我要么在 setter 上使用 Eclipse 的“查找引用”功能,要么在那里设置断点。使用 ActiveRecord,该属性甚至不在类文件中列出!当然,我可以进行文本搜索并查看数百个结果,但这违背了使用 IDE 的意义。有没有更好的办法?我正在使用 RubyMine。
最佳答案
tl;博士Kernel.caller
解释
Rails 使用 method_missing 在 ActiveRecord 模型上实现属性方法。 You can see that in the ActiveRecord::Base source code. 我为模型类 YourModel 解决这个问题的方式是这样的:
class YourModel < ActiveRecord::Base
def myfield=(*args)
Rails.logger.debug "myfield called at #{Kernel.caller.inspect}"
super(*args)
end
end
关于ruby-on-rails - Ruby on Rails : how do I find out where a method is called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616304/
我是一名优秀的程序员,十分优秀!