NoMethodError when using .where (eager fetching)
Posted
by
Ethan Leroy
on Stack Overflow
See other posts from Stack Overflow
or by Ethan Leroy
Published on 2012-10-31T22:58:16Z
Indexed on
2012/10/31
23:00 UTC
Read the original article
Hit count: 139
I have the following model classes...
class Image < ActiveRecord::Base
attr_accessible :description, :title
has_many :imageTags
has_many :tags, :through => :imageTags
end
class Tag < ActiveRecord::Base
attr_accessible :name
has_many :imageTags
has_many :images, :through => :imageTags
end
class ImageTag < ActiveRecord::Base
attr_accessible :position
belongs_to :image
belongs_to :tag
end
And when I use find
for getting the Tag with the id 1
t = Tag.find(1);
@images = t.images;
But when I do the same with where
, I get a NoMethodError
, with the description undefined method 'images'
:
t = Tag.where(:name => "foo");
@images = t.images;
I also tried adding .includes(:images)
before the .where
statement, but that doesn't work too. So, how can I get all Images
that belong to a Tag
?
© Stack Overflow or respective owner