dubstep
January 11, 2012, 11:37am
1
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
On Tue, Jan 10, 2012 at 11:23 PM, Mohamad El-Husseini <
[email protected] > 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
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 V.
http://twitter.com/peter_v
http://rails.vandenabeele.com
On 10 January 2012 22:23, Mohamad El-Husseini [email protected]
wrote:
… @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