On Tuesday, May 24, 2011 12:33:40 PM UTC-6, Ruby-Forum.com User wrote: > > Hi all, > > Think this is a really simple question, but so far cant find answers > after much searching! > > I have 2 models, Event and Venue, an Event belongs_to a Venue. > A venue has an attribute locality, which is a string > I want to get an array of events, for which the venue they belong_to has > the locality attribute equal to London. A list of events in London! > > That's all! I can think of a horrible way to do this, where I return all > events, go through the array, adding to a new array events where > event.venue.locality == "london", but this seems daft, is there a way I > can do this in a query, something like > > @ed_events = Event.where(Venue.locality => "London") > > I've found lots of help on more complicated joins between tables, but > cant find the syntax for this! > Was this one of the resources your read (from the Rails Guides):
http://guides.rubyonrails.org/active_record_querying.html#joining-tables Specifically read section 3.2, "Using Array/Hash of Named Association" You should be able to do something like: Event.join(:venue).where(:venue => { :locality => "London" }) Hope this helps. -- 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.

