J'ai la migration suivante mais je ne sais pas quoi utiliser dans la méthode code> code>
5 Réponses :
Qu'est-ce qui ne va pas avec cela?
C'est ce que je pensais que ce serait mais c'est la première fois que j'ai utilisé des modèles polymorphes et que je me suis confus
en fait, il ne devrait pas être supprimé_column: adresses,: adresse adressable
Oups, tu es totalement correct. J'aurais dû vérifier les documents d'abord, au lieu de passer à la mémoire.
Quel est le problème?
def self.down remove_column :addresses, :addressable_type remove_column :addresses, :addressable_id end
dis-tu supprimer_column: adresses,: adresse adressable n'est pas correcte?
Damian: Non, il suffit de regarder la table via certains navigateurs SQL et vous verrez les deux colonnes.
En réalité,
change_table :addresses do |t| t.remove_references :addressable, :polymorphic => true end
Cela provoquera la gauche de la colonne Adressable_Type. il devrait être t.remove_referferences: adresse,: polymorphe => vrai
Je voudrais uppoter cette réponse si elle incluait @ebengener son commentaire
def self.down change_table :addresses do |t| t.remove_references :addressable, :polymorphic => true end end
class RemoveAddressableFromAddresses < ActiveRecord::Migration def change remove_reference :addresses, :addressable, polymorphic: true, index: true end end
Veuillez prendre une minute pour expliquer ce que votre code fait et comment il répond à cette question.
Cela devrait maintenant être la bonne réponse: Retirer_reference peut aujourd'hui (puisque les rails 4.2 au moins) sont renvoyés. Cela signifie que les rails sillonnent comment faire rouler une refoulée par une valeur ajoutée. Donc, ce code peut être renvoyé (bien que les données puissent être perdues dans la migration)