I know you can create named scopes in Rails, which allow you to specify conditions which can then be built on later:
named_scope :active, :conditions => {:active => true}
...
MyModel.active.find(...)
This works by creating a proxy object which isn't evaluated until later on. What I want to know is if it's possible to create a dynamic unnamed scope?
By which I mean, is there a method 'foo' with which I can go
scope = MyModel.foo(:conditions => {:target_id => 4})
and then pass scope
around as a proxy object that I can do more .find
s or other scoped calls on?
Yes, check Anonymous Scopes: