J'ai une classe, par exemple, de voitures dont j'ai des classes héritées noir et rouge comme suit:nom de classe enfant de magasin dans la colonne de base de données en association polymorphique - rails
class Car::Black < Car
end
class Car::Red < Car
end
Maintenant, il y a une autre classe, par exemple , CarPurchase qui a beaucoup de voitures des deux variétés. Les associations sont les suivantes:
# In Black and Red models:
has_many :car_purchases, as: :purchasable, dependent:destroy
# In CarPurchase model:
belongs_to :purchasable, polymorphic: true
Maintenant, je suis en train de sauver les CarPurchases comme ceci:
black_car.car_purchases.new() # black_car is an object of class Car::Black
Ma base de données a une colonne appelée purchasable_type. Le problème est que les enregistrements sont enregistrés avec purchasable_type « Car » et non « Car :: Black ». J'ai essayé d'enregistrer explicitement le buyerable_type lors de la création de l'enregistrement. Pas de chance. Aidez-moi, s'il vous plaît.
Je pense qu'il est correct ... Vous utilisez STI et polymorphes ... dans ce cas, le type de classe de base doit être réglée ... Consultez la section des associations polymorphes pour plus détails ... http: //api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Polymorphic+Associations –
Je l'ai vu ce lien avant. Merci quand même! –
Vérifiez cela ... Cela peut être d'une certaine aide http://www.archonsystems.com/devblog/2011/12/20/rails-single-table-inheritance-with-polymorphic-association/ –