Assuming that Client has_many Hosts, you could do: client_hosts = options[:client] ? Client.find(options [:client]).hosts : Host old_hosts = client_hosts.last_seen_before((minutes.minutes.ago)
--Matt Jones On Jul 3, 3:38 pm, Felix Schäfer <[email protected]> wrote: > Hello, > > I've been looking for a way to noop a find_all_by. Use case: I have a > function that takes a hash called options as argument, and that > operates on a subset of Host objects as such: > """ > client_id = options[:client] ? Client.find(options[:client]) : nil > old_hosts = client_id ? > Host > .last_seen_before > (minutes.minutes.ago).find_all_by_client_id(client_id) : > Host.last_seen_before(minutes.minutes.ago) > """ > last_seen_before is a named_scope. If I had a noop for the > find_all_by_client_id, I could make due of the client_id ? : part in > the second line. > > I admit that this is quite a simple a case, and that it doesn't add > much complexity to the program, but I'll soon have to add some more > filters and/or scopes, and I'd hate to make different calls depending > on whether the option is set or not. > > Does anyone know a way to make this less painfull? > > Thanks, > > Felix --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

