我知道你可以在 Rails 中创建命名范围,它允许你指定条件,然后可以在以后构建:
named_scope :active, :conditions => {:active => true}
...
MyModel.active.find(...)
这通过创建一个直到稍后才评估的代理对象来工作。我想知道的是是否可以创建一个动态的未命名范围?
我的意思是,有没有一种我可以使用的方法“foo”
scope = MyModel.foo(:conditions => {:target_id => 4})
然后scope
作为代理对象传递,我可以做更多.find
的 s 或其他范围调用?