通过在迁移名称中指定关键字“ Create”,可以在命令行迁移中调用create_table语法:
rails g migration CreateMyTables name:string
这将创建具有以下内容的迁移:
class CreateMyTables < ActiveRecord::Migration
def change
create_table :my_tables do |t|
t.string :name
end
end
end
我想使用“ Change”关键字来完成相同的操作。所以从命令行运行:
rails g migration ChangeMyTables user:references
这就是我得到的:
class ChangeMyTables < ActiveRecord::Migration
def change
end
end
这是我期望的:
class ChangeMyTables < ActiveRecord::Migration
def change
change_table :my_tables do |t|
t.references :user, index: true
end
end
end
答案 0 :(得分:1)
有一种方法可以从命令行添加参考列:
rails g migration AddUserToMyTable user:references
注意:要将列添加到表中,我们使用约定Add[column]To[table]
重命名迁移。
结果将类似于:
class AddUserToMyTable < ActiveRecord::Migration[5.2]
def change
add_reference :my_tables, :user, foreign_key: true
end
end
注意: foreign_key: true
将为您创建索引。
详细了解add_reference。