ActiveRecord - how to search by association value?

class Parent < Entity

has_many :children

end

p = Parent.find_by_name(“Michael”)

p.children # Returns all children of the parent

HTH

Erol,

Thank you for the reply.

This will work, but is there a way to do this search without adding another association? I am just trying to learn the capabilities of ActiveRecord.

Let me re-state the problem: I either already have the parent object, or know enough of it's attributes to find the parent. But the goal is to find the child, using only its 'parent' association.

Child.find (:name=>"Timmy", parent => knownParent ) - or - Child.find (:name=>"Timmy", parent.name => "Michael")

You can use dynamic finders:

Child.find_by_parent_id_and_name(parent.id, “Timmy”)

But then again, if you already have the parent object, the common practice is to setup the children association and get the child using it:

parent.children.find_by_name(“Timmy”)

Which IMO is more readable than the first example.

Erol,

Thanks, it did not occur to me to try this kind of finder. The second option also works, especially "common practice" part - learning Rails idioms here.

I initially assumed ActiveRecord would be able to build a query based on known PK and FK attributes of the association without explicit reference of parent's id, which would be, in my opinion, more OO

Nikolai