Leute,Active, has_many: durchgehend, und Polymorphe Verbände
Wollen Sie sicher, dass ich das richtig verstehen machen. Und ignorieren Sie hier den Fall der Vererbung (SentientBeing) und versuchen Sie stattdessen, sich auf polymorphe Modelle in has_many: through relationsh zu konzentrieren. Das heißt, betrachten Sie das folgende ...
class Widget < ActiveRecord::Base
has_many :widget_groupings
has_many :people, :through => :widget_groupings, :source => :person, :conditions => "widget_groupings.grouper_type = 'Person'"
has_many :aliens, :through => :widget_groupings, :source => :alien, :conditions => "video_groupings.grouper_type = 'Alien'"
end
class Person < ActiveRecord::Base
has_many :widget_groupings, :as => grouper
has_many :widgets, :through => :widget_groupings
end
class Alien < ActiveRecord::Base
has_many :widget_groupings, :as => grouper
has_many :widgets, :through => :widget_groupings
end
class WidgetGrouping < ActiveRecord::Base
belongs_to :widget
belongs_to :grouper, :polymorphic => true
end
In einer perfekten Welt, würde Ich mag an, ein Widget und eine Person gegeben, so etwas wie:
widget.people << my_person
Allerdings, wenn ich tun Ich habe bemerkt, dass der 'Typ' des 'Grouper' in widget_groupings immer null ist. Allerdings, wenn ich sowas wie folgendes mache:
Dann klappt das alles wie ich normalerweise erwartet hätte. Ich glaube nicht, dass ich jemals gesehen habe, dass dies bei nicht polymorphen Assoziationen vorkommt, und ich wollte nur wissen, ob dies etwas Spezifisches für diesen Anwendungsfall ist oder ob ich möglicherweise einen Fehler anstarre.
Danke für jede Hilfe!
Oh mein Gott, das ist so schmerzhaft offensichtlich, ich kann nicht glauben, dass ich direkt darüber glee. Danke EmFi! – Cory
Kein Problem, ich glaube, ich habe mich etwa einen Tag dafür gequält, wie ich es beim ersten Mal machen konnte. Hatte nicht geholfen, dass es eines der ersten Dinge war, die ich in Rails versuchte, ohne ein Tutorial/Buch zu folgen. – EmFi
Danke EmFi. – jdl