là gì tôi có sự di cư folowing nhưng không biết những gì để sử dụng trong các phương pháp down
sự di cư xuống để thêm một tài liệu tham khảo đa hình
change_table :addresses do |t|
t.references :addressable, :polymorphic => true
end
là gì tôi có sự di cư folowing nhưng không biết những gì để sử dụng trong các phương pháp down
sự di cư xuống để thêm một tài liệu tham khảo đa hình
change_table :addresses do |t|
t.references :addressable, :polymorphic => true
end
Có vấn đề gì?
def self.down
remove_column :addresses, :addressable_type
remove_column :addresses, :addressable_id
end
Có gì sai với điều này?
def self.down
remove_column :addresses, :addressable
end
trên thực tế,
change_table :addresses do |t|
t.remove_references :addressable
end
sẽ là một chút railsier, không có?
chỉnh sửa: Như Eben Geer chỉ ra
change_table :addresses do |t|
t.remove_references :addressable, :polymorphic => true
end
là cách chính xác để làm điều này. Chúc mừng!
điều này sẽ khiến cột addressable_type bị bỏ lại phía sau. nó phải là t.remove_references: addressable,: polymorphic => true –
Tôi sẽ upvote câu trả lời này nếu nó bao gồm @EbenGeer bình luận của mình – 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
Hãy dành một phút để giải thích mã của bạn làm gì và cách nó trả lời câu hỏi này. – Bond
bạn có nói remove_column: địa chỉ,: địa chỉ không chính xác không? – Damian
yeah .. đây là giải pháp đúng – amitkaz
Damian: không, chỉ cần nhìn vào bảng thông qua một số trình duyệt SQL và bạn sẽ thấy hai cột. –