je la migration folowing mais ne savent pas quoi utiliser dans la méthode down
Quelle est la migration vers le bas pour ajouter une référence polymorphes
change_table :addresses do |t|
t.references :addressable, :polymorphic => true
end
je la migration folowing mais ne savent pas quoi utiliser dans la méthode down
Quelle est la migration vers le bas pour ajouter une référence polymorphes
change_table :addresses do |t|
t.references :addressable, :polymorphic => true
end
Quel est le problème?
def self.down
remove_column :addresses, :addressable_type
remove_column :addresses, :addressable_id
end
Quel est le problème avec ça?
def self.down
remove_column :addresses, :addressable
end
Thats ce que je pensais que ce serait, mais cela est la première fois que je l'ai utilisé des modèles polymorphes et suis confus – Damian
en fait il ne devrait pas il remove_column: adresses,: – Damian
adressable Oups, vous Sommes totalement juste. J'aurais dû vérifier les docs d'abord, au lieu d'aller de mémoire. –
fait,
change_table :addresses do |t|
t.remove_references :addressable
end
serait un peu railsier, non?
modifier: Comme le souligne Eben Geer sur
change_table :addresses do |t|
t.remove_references :addressable, :polymorphic => true
end
est la bonne façon de le faire. À votre santé!
. il devrait être t.remove_references: addressable,: polymorphic => true –
Je remettrais cette réponse à plus tard si elle incluait @EbenGeer son commentaire – Arjan
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
S'il vous plaît prenez une minute pour expliquer ce que fait votre code et comment il répond à cette question. – Bond
dites-vous remove_column: adresses,: addressable n'est pas correct? – Damian
ouais .. c'est la bonne solution – amitkaz
Damian: non, il suffit de regarder la table via un navigateur SQL et vous verrez les deux colonnes. Cela entraînera la colonne addressable_type à être laissée derrière –