ho la migrazione folowing ma non so cosa usare nel metodo di down
Qual è la migrazione verso il basso per l'aggiunta di un riferimento polimorfico
change_table :addresses do |t|
t.references :addressable, :polymorphic => true
end
ho la migrazione folowing ma non so cosa usare nel metodo di down
Qual è la migrazione verso il basso per l'aggiunta di un riferimento polimorfico
change_table :addresses do |t|
t.references :addressable, :polymorphic => true
end
Qual è il problema?
def self.down
remove_column :addresses, :addressable_type
remove_column :addresses, :addressable_id
end
Cosa c'è di sbagliato in questo?
def self.down
remove_column :addresses, :addressable
end
questo è quello che ho pensato che sarebbe stato, ma questa è la prima volta ho usato modelli polimorfici, ma ho confuso – Damian
in realtà non dovrebbe essere remove_column: indirizzi,: indirizzabile – Damian
Ops, si hai completamente ragione. Avrei dovuto prima controllare i documenti, invece di andare a memoria. –
realtà,
change_table :addresses do |t|
t.remove_references :addressable
end
sarebbe un po 'railsier, no?
modificare: Come Eben Geer sottolinea
change_table :addresses do |t|
t.remove_references :addressable, :polymorphic => true
end
è il modo corretto per farlo. Saluti!
ciò causerà la colonna addressable_type da lasciare. dovrebbe essere t.remove_references: indirizzabile,: polymorphic => true –
Avrei passato questa risposta se includesse @EbenGeer il suo commento – 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
Ti preghiamo di dedicare un minuto a spiegare cosa fa il tuo codice e come risponde a questa domanda. – Bond
stai dicendo remove_column: indirizzi,: indirizzabile non è corretto? – Damian
sì .. questa è la soluzione giusta – amitkaz
Damian: no, basta guardare la tabella tramite un browser SQL e vedrai le due colonne. –