Try:

  @lost_children = @user.children.select {|c| c.is_lost}

-Roy

-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of 
Tony Tony
Sent: Tuesday, October 14, 2008 6:17 AM
To: [email protected]
Subject: [Rails] Trying to replace some .find calls with better code


Hi all,

This forum has been very helpful in the past so I figured I'd try and ask for 
some help on some (yet again) rather "newbie" stuff again.


I currently have the following DB Schema (Two Tables Listed here):

Users Table    (user has_many children)
-----------
id
login
...


Children Table (children belongs_to user)
--------------
id
first_name
last_name
is_lost (boolean)


Users Controller show method:

def show
  @user = User.find_by_login(params[:id])

  @lost_children = @user.children.find(:all, :conditions => "is_lost =
't'")

  ...
end


This WORKS. However, I'm sure I can cut down doing a find query by doing 
something like this:

@lost_children = @user.children(:is_lost => true)


The above doesn't work for me (as I just made it up out of the blue).
But there must be something of this nature that can aid in avoiding making 
another DB call. I've tried searching for a while now but have had little luck.

At the very least, any suggestions on how to make that code cleaner/better?


Many thanks in advance!

-Tony


P.S. Please let me know if you need more code or explanations.
--
Posted via http://www.ruby-forum.com/.



--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to