Another newbie question. My dummy app has the following models: class User < ActiveRecord::Base has_one :list end class List < ActiveRecord::Base belongs_to :user has_many :celebs end class Celeb < ActiveRecord::Base belongs_to :list end I want to load a user''s list, and include the celebs that belong to it. I tried the following: @user = current_user ... @list = user.list.joins(:celebs) ... @list = user.list(:include => :celebs) ... @list = user.list.includes(:celebs) The result was some errors/unexpect output. The expected query is: SELECT * FROM lists INNER JOIN lists.id ON celebs.list_id WHERE lists.user_id = @user_id -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/QtXHPBoCAOwJ. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Tue, Jan 10, 2012 at 11:23 PM, Mohamad El-Husseini < husseini.mel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Another newbie question. My dummy app has the following models: > > class User < ActiveRecord::Base > has_one :list >Try to add here: has_one :list_with_celebs, :class_name => "List", :include => :celebs end> > class List < ActiveRecord::Base > belongs_to :user > has_many :celebs > end > > class Celeb < ActiveRecord::Base > belongs_to :list > end > > I want to load a user''s list, and include the celebs that belong to it. I > tried the following: > > @user = current_user > > ... @list = user.list.joins(:celebs) > ... @list = user.list(:include => :celebs) > ... @list = user.list.includes(:celebs) >@user.list_with_celebs HTH, Peter -- Peter Vandenabeele http://twitter.com/peter_v http://rails.vandenabeele.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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
You can try This way @user.includes(celebs) Sent from my iPad On 11/01/2012, at 08:50, Peter Vandenabeele <peter-jNuWw7i2w7syMbTcgqFhxg@public.gmane.org> wrote:> On Tue, Jan 10, 2012 at 11:23 PM, Mohamad El-Husseini <husseini.mel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Another newbie question. My dummy app has the following models: > > class User < ActiveRecord::Base > has_one :list > > Try to add here: > > has_one :list_with_celebs, :class_name => "List", :include => :celebs > > > end > > class List < ActiveRecord::Base > belongs_to :user > has_many :celebs > end > > class Celeb < ActiveRecord::Base > belongs_to :list > end > > I want to load a user''s list, and include the celebs that belong to it. I tried the following: > > @user = current_user > > ... @list = user.list.joins(:celebs) > ... @list = user.list(:include => :celebs) > ... @list = user.list.includes(:celebs) > > @user.list_with_celebs > > HTH, > > Peter > > -- > Peter Vandenabeele > http://twitter.com/peter_v > http://rails.vandenabeele.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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.-- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 10 January 2012 22:23, Mohamad El-Husseini <husseini.mel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Another newbie question. My dummy app has the following models: > > class User < ActiveRecord::Base > has_one :list > end > > class List < ActiveRecord::Base > belongs_to :user > has_many :celebs > end > > class Celeb < ActiveRecord::Base > belongs_to :list > end > > I want to load a user''s list, and include the celebs that belong to it. I > tried the following: > > @user = current_user > > ... @list = user.list.joins(:celebs) > ... @list = user.list(:include => :celebs) > ... @list = user.list.includes(:celebs)You don''t normally need to use joins or includes for such things. you can just say @list = @user.list then celebs = @list.celebs or just celebs = @user.list.celebs. You may have to test for the case where @user.list is nil if it is possible to have a user that has no list Colin -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.