For example: Currently I have: functions < functions_competencies < competencies exams < exam_competencies < competencies I''d like to dry up "functions_competencies" and "exam_competencies" by using a polymorphic association, by let''s say ''attached_competencies'': functions < attached_competencies < competencies exams < attached_competencies < competencies evaluations < attached_competencies < competencies ... Note that these are join tables. Is this possible? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Apr 5, 9:40 am, Andy Tolle <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> For example: > Currently I have: > functions < functions_competencies < competencies > exams < exam_competencies < competencies > > I''d like to dry up "functions_competencies" and "exam_competencies" by > using a polymorphic association, by let''s say ''attached_competencies'': > > functions < attached_competencies < competencies > exams < attached_competencies < competencies > evaluations < attached_competencies < competencies > ... > > Note that these are join tables. > > Is this possible?This is only somewhat possible - you can do a has_many :through from the specific classes to the general, but the other direction will get you an exception. In your case: in function.rb: has_many :attached_competencies, :as => :competency_thing, :dependent => :destroy has_many :competencies, :through => :attached_competencies # this works in attached_competency.rb: belongs_to :competency_thing, :polymorphic => true belongs_to :competency in competency.rb: has_many :attached_competencies, :dependent => :destroy has_many :???, :through => :attached_competencies # THIS WILL NOT WORK You *can* do a through for a particular type (in competency.rb again): has_many :functions, :through => :attached_competencies, :source => :competency_thing, :source_type => ''Function'' Which may or may not be sufficient for your purposes. --Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Andy Tolle wrote in post #991031:> For example: > Currently I have: > functions < functions_competencies < competencies > exams < exam_competencies < competencies > > I''d like to dry up "functions_competencies" and "exam_competencies" by > using a polymorphic association, by let''s say ''attached_competencies'': > > functions < attached_competencies < competencies > exams < attached_competencies < competencies > evaluations < attached_competencies < competencies > ... > > Note that these are join tables. > > Is this possible?IIRC, this is based on the has_many_polymorphs plugin class appl has_many :appllinks has_many :projects, :through => :appllinks, :source => :project, :conditions =>? "appllinks.appllinkable_type = ''Project''" has_many :scenarios, :through => :appllinks, :source => :scenario, :conditions =>? "appllinks.appllinkable_type = ''Scenario''" has_many :unittests, :through => :appllinks, :source => :unittest, :conditions =>? "appllinks.appllinkable_type = ''Unittest''" class appllink belongs_to :appl belongs_to :appllinkable, :polymorphic => true belongs_to :project, :class_name => ''Project'', :foreign_key => ''appllinkable_id'' belongs_to :scenario, :class_name => ''Scenario'', :foreign_key => ''appllinkable_id'' belongs_to :unittest, :class_name => ''Unittest'', :foreign_key => ''appllinkable_id'' class project has_many :appllinks, :as => :applinkable, :dependent => :destroy has_many :appls, :through => :appllinks classes scenario and unittest are just like project YMMV -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.