我读了本文, http://ryandaigle.com/articles/2006/12/03/extend-your-activerecord-association-methods但它适用于 Rails 1.x。
我真的很想创建自己的关联方法:
user = User.find(1)
# Example of a normal association method
user.replies.create(:body => 'very informative. plz check out my site.')
# My association method
user.replies.find_by_spamminess(:likelihood => :very)
在 Rails 3 中,执行此操作的正确方法是什么?
Rails 3 的处理方式通常不使用 find 方法,而是使用范围,这会延迟实际的数据库调用,直到您开始迭代集合。
猜猜你的第一个例子,我会这样做:
在课堂上 回复...
scope :spaminess, lambda {|s| where(:likelyhood => s) }
然后使用它:
spammy_messages = user.replies.spaminess(:very)
或在视图中使用它
spammy_messages.each do |reply|
....
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)