Now that I read again, scoped won't allow destroy_all to get through, but I still stand by my point :)
On Sun, Jul 5, 2009 at 5:14 AM, Pat Nakajima <[email protected]> wrote: > That works, though it's definitely a good idea to sanitize which params can > be used in such a manner. Otherwise, someone could send params like { > :destroy_all => true } or something, and then there goes your database. > Pat > > > On Sat, Jul 4, 2009 at 1:07 PM, Matt Jones <[email protected]> wrote: > >> >> You could try building up a chain of scopes - see this post: >> >> >> http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/a7df6a8b9628bb4b/d6b738f83084ec91?lnk=gst&q=scoped#d6b738f83084ec91 >> >> As noted there, you can avoid cluttering up your model by using >> 'scoped' to create anonymous scopes. >> >> So your example would look like: >> >> # in the controller action >> proxy = Machine >> [:attr1, :attr2, :attr3].each do { |k| >> proxy = proxy.scoped(:conditions => Hash[k, params[k]]) unless params >> [k].blank? >> } >> @machines = proxy.find(:all) >> >> That last find can also be a paginate, have limits, sorts, etc. >> >> --Matt Jones >> >> On Jul 2, 5:42 pm, jhaagmans <[email protected]> wrote: >> > In an app I'm working on, I want to have a filter in which you can >> > specify certain attributes and click "filter" to activate an AJAX >> > request and return a list of, say, machines that match with those >> > attributes. >> > >> > No I'm not sure how to build the controller. >> > >> > If I would specify all the attributes, I would simply do: >> > >> > def filter >> > @machines = Machine.find(:all, :conditions => { :attr_1 => params >> > [:attr_1], :attr_2 ... } >> > end >> > >> > But how would I do this if only some of the attributes are specified >> > and the others are nil? Would I have to create @machines including all >> > machines and have Rails do the rest of the work or is there a way to >> > get find to do what I want? >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

