Hi,
I have the following setup:
class Item < ActiveRecord::Base
belongs_to :item, :polymorphic => true
end
class AbstractItem < ActiveRecord::Base
has_one :item, :as => :item
def self.abstract_class?; self == AbstractItem; end
end
class Post < AbstractItem
end
Now, when I do a
post = Post.find :first, :include => :item
inside my controller, post.item will be nil.
I can do
post = Post.find :first
and then post.item will work, but it uses a second query.
But if I don’t use AbstractItem and use Post as follow:
class Post < ActiveRecord::Base
has_one :item, :as => :item
end
Then
post = Post.find :first, :include => :item
will work just fine, takes one query, nada problems.
The reason I would like an abstract model is because there will be a lot
of identical functionality within all the item types.
So, what’s the reason eager loading doesn’t work with abstract models.
How can I solve this and/or is there another/better way to solve this.