Les gens,
Veux m'assurer que je comprends bien. Et veuillez ne pas tenir compte le cas de l'héritage ici (SentientBeing), en essayant de se concentrer plutôt sur polymorphes modèles dans has_many :grâce à des relations. Cela dit, considérez les points suivants...
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
Dans un monde parfait, je voudrais, au vu d'un Widget et une Personne, faire quelque chose comme:
widget.people << my_person
Cependant, quand je fais cela, j'ai remarqué que le "type" de la "mérou" est toujours la valeur null dans widget_groupings. Cependant, si j'ai quelque chose comme ce qui suit:
widget.widget_groupings << WidgetGrouping.new({:widget => self, :person => my_person})
Ensuite, tous les ouvrages que je l'aurais normalement prévu. Je ne pense pas que je ai jamais vu cela se produire avec les non polymorphes associations et je voulais juste savoir si c'était quelque chose de spécifique à ce cas d'utilisation, ou si je suis potentiellement en regardant un bug.
Merci pour toute aide!