KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I need a player to have many structures and the structure to belong to the player. Structure is a polymorphic relationship. class Player < ActiveRecord::Base has_many :player_structures has_many :structures, :through => player_structures end class PlayerStructures < ActiveRecord::Base belongs_to :structure, polymorphic: true belongs_to :player end class StructureA < ActiveRecord::Base has_one :player_structure, :as => :structure has_one :player, :through => :player_structure end class StructureB < ActiveRecord::Base has_one :player_structure, :as => :structure has_one :player, :through => :player_structure end But if I pull out Player.first and ask for its structures, it gives: ActiveRecord::HasManyThroughAssociationPolymorphicSourceError: Cannot have a has_many :through association 'Player#structures' on the polymorphic object 'Structure#structure'. But it should be able to generate a SQL query where it finds all player_structures with its id, then fetches the structure based on the structure_id and structure_type. Why does this fail and how can I validly construct a polymorphic join table? UPDATE If I do what I want it to do manually, it works: player_structures.collect(&:structure) Rails, y u no do that?
Tags (comma-separated)
Save Edits
Cancel