Ruby on rails 具有命名_作用域的加法链接
有没有一种方法可以以相加的方式组合作用域 如果我有望远镜Ruby on rails 具有命名_作用域的加法链接,ruby-on-rails,activerecord,named-scope,Ruby On Rails,Activerecord,Named Scope,有没有一种方法可以以相加的方式组合作用域 如果我有望远镜 User.big_haired 及 我可以打电话 User.big_haired.plays_guitar 让所有留着大头发、会弹吉他的用户参与进来。我可以写这篇文章来吸引所有留着大头发或弹吉他的用户吗 我想我必须补充一点,我意识到您可以运行一组查询并将结果添加到一起。这就是我不想做的事。所以你有: class User < ActiveRecord::Base named_scope :big_haired, :condi
User.big_haired
及
我可以打电话
User.big_haired.plays_guitar
让所有留着大头发、会弹吉他的用户参与进来。我可以写这篇文章来吸引所有留着大头发或弹吉他的用户吗
我想我必须补充一点,我意识到您可以运行一组查询并将结果添加到一起。这就是我不想做的事。所以你有:
class User < ActiveRecord::Base
named_scope :big_haired, :conditions => {:hair => 'massive'}
named_scope :plays_guitar, :conditions => {:plays => 'guitar'}
end
我只是在一些定义了_作用域的模型上进行了尝试。如果您将其组合,它将把这些条件作为AND条件组合在一起。所以
User.big_haired.plays_guitar
将导致(显然是我的速记SQL,而不是真正的rails生成的东西)
我不知道有什么方法可以把它们结合起来作为一种关系。当你考虑各种选择时,这将是难以置信的复杂。我们一直在链接命名为_的范围,它工作得很好(只要您希望它们结合在一起)
要执行and case,我将创建一个具有OR条件的特殊命名范围,或者使用union生成一个唯一的集合,如下所示:
User.big_haired | User.plays_guitar
试试Searchlogic,它最近很流行
User.big_haired.plays_guitar
SELECT * FROM users WHERE hair = 'massive' AND plays = 'guitar'
User.big_haired | User.plays_guitar