Ruby on Rails
Friday, February 22, 2013
On Wednesday, 20 February 2013 14:20:46 UTC-5, Linus Pettersson wrote:
HiLet's say I have three models, Company, User and Entry (and a join model EntryParticipants).Company has many Users, a User has many Entries (Entries created by a User).Also, there is another many-to-many relationship between User and Entry (a User can participate in many entries and an Entry can have many participants).So, now I want to fetch all Entries that a User has created OR is participating in. I'm a bit stuck though...user.entries => All entries created by this useruser.participated_entries => All participated entriesBut now I want to get them all in one query. The code below is working, but is there a more efficient way to do it?scope.includes(:entry_participants).where("(entry_ participants.participated_ entry_id = entries.id) OR entries.user_id = ?", user.id)
If it makes sense for your domain model, adding some logic to enforce that the user who created the Entry is always also a participant makes this trivial.
--Matt Jones
-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/UdOD8j6fRScJ.
For more options, visit https://groups.google.com/groups/opt_out.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment