假设我有两个这样的模型:
class Comment < ActiveRecord::Base
belongs_to :user
named_scope :about_x :conditions => "comments.text like '%x%')"
end
class User < ActiveRecord::Base
has_many :comments
end
如何将named_scope添加到用户模型中,如此
class User < ActiveRecord::Base
has_many :comments
named_scope :comments_about_x, :includes => :comments, :comments_named_scope => :about_x
end
允许我这样做
all_user_comments_about_x = User.comments_about_x
原因是我经常需要使用注释模型about_x命名范围逻辑,但我不想让“comments.text像'%x%')”分散在我的代码中。
我希望这是有道理的:)
谢谢
答案 0 :(得分:1)
你只需要使用
@user.comments.about_x
我个人认为named_scope
模型上不需要user
。
但您可以添加一种方法:
class User < ActiveRecord::Base
def comments_about_x
self.comments.about_x
end
end
并使用
@user.comments_about_x