Could anyone please help? Getting exceptions trying to implement:
module P class List < ActiveRecord::Base has_many :list_items has_many :items, :through => :list_items
has_many :contacts, :source => :item, :through => :list_items, :source_type => "P::Contact"
has_many :users, :source => :item, :through => :list_items, :source_type => "P::User" end
class ListItem < ActiveRecord::Base belongs_to :list belongs_to :item, :polymorphic => true end
class Contact < ActiveRecord::Base has_many :lists, :through => :list_items has_many :items, :as => :item end
class User < ActiveRecord::Base; end # associations like Contact
end
Trying to make List of ListItem where the item is any of Contact, User, etc.
Several problems:
1) P::List.find(:first).contacts does not narrow by the item_type and instead returns e.g. Contacts with ids from User items. Adding :conditions => 'item_type = "P::Contact"' to the :has_many :contacts fixes this but,
2) P::List.find(:first).items (which should return all items of all item_types in the first list) instead throws:
ActiveRecord::HasManyThroughAssociationPolymorphicError: Cannot have a has_many :through association 'P::List#items' on the polymorphic object 'Item#item'.
I've been scratching on this for a while now. Could someone please explain wtf is going on with this setup ?
Thanks, tv