Cod*_*ang 4 database ruby-on-rails migrate relationship
我对教程中的以下代码感到困惑。
目标是genre_id从表中删除引用键books
class RemoveGenreFromBooks < ActiveRecord::Migration
def up
remove_index :books, column: [:genre_id]
remove_column :books, :genre_id
end
def down
add_reference :books, :genre, index: true
end
end
Run Code Online (Sandbox Code Playgroud)
但我不明白什么remove_index :books, column: [:genre_id]意思
此外,我没有index: true在down方法中得到这一点。
如果我需要添加关系,为什么我不能直接输入
class Addrelationship < ActiveRecord::Migration
def change
add_reference :books, :genre
end
Run Code Online (Sandbox Code Playgroud)
由于有一种添加引用的方法,因此也有一种可以删除的方法 -remove_reference
语法是:remove_reference(table_name, ref_name, options = {})
因此,在您的情况下,要删除以下引用Genre:
class RemoveGenreFromBooks < ActiveRecord::Migration
def change
remove_reference :books, :genre, index:true, foreign_key: true
end
end
Run Code Online (Sandbox Code Playgroud)
该选项foreign_key: true还将从books表中删除外键。
| 归档时间: |
|
| 查看次数: |
5315 次 |
| 最近记录: |