This is helping…getting further.
I tried this:
group.topic.find(:first, :conditions=>[ “symbol=?”, “LM”])
ActiveRecord::RecordNotFound: Couldn’t find Topic with ID in (’—
:first’,’— \n:conditions: \n - “symbol=?”\n - L
“symbol” is a column in the “Topics” table
Not sure why though???
[mailto:firstname.lastname@example.org] On Behalf Of Chris H.
Sent: Wednesday, November 30, 2005 8:02 AM
Subject: Re: [Rails] active record question
i suppose you could even do
group = Group.find(1)
topic = group.topics.find(1234)
documentation doesn’t specify what is returned from find so it could be
RecordNotFound exception or nil if the record does not exist.
On 11/30/05, Chris H. <email@example.com > wrote:
ah, i misread…
given an arbitrary topic, you want to see if its associated with a
arbitrary_topic = Topic.find(1234)
group = Group.find(1, :include => :topics)
find out if arbitrary topic is associated with group
found the topic in the group
did not find topic in group
On 11/29/05, Phil S. < firstname.lastname@example.org
mailto:email@example.com > wrote:
I have a many to many relationship for two tables (topics and groups)
join table for the two tables (groups_topics)
I have code working where I can access all the topics for a group by
group.topic, which returns an array of topic instances. This works
The problem is that there might be 1000s of topics valid for a
group. One use case I have is I just want to see if one specific topic
valid for a group. Using the above, I’d have to iterate the array to
this out. It seems like there should be a faster way where I can
condition (“topic_name=blah”) instead of returning/iterating a huge
I saw a blurb in the agile rails book on this subject, but it didn’t
enough detail for me to understand…
Can someone point me in the right direction?