我正在创建下表:
create_table(:categories) do |t|
t.belongs_to :user, null: false, foreign_key: true, index: true
t.uuid :uuid, unique: true, null: true, index: true
t.string :kind, :limit => 32, null: false, index: true
t.string :category, null: false, index: true
t.datetime :deleted_at, null: true, index: true
t.timestamps null: false, index: false
t.index [:kind, :category], :unique => true
end
第一列是外键,默认情况下将命名为“user_id”。我想使用belongs_to创建列,但是将列名指定为“created_by_user_id”。我怎么能这样做?
答案 0 :(得分:1)
您可以将外键列的名称传递给foreign_key
,如下所示:
create_table(:categories) do |t|
t.belongs_to :user, null: false, foreign_key: 'created_by_user_id', index: true
...
end
答案 1 :(得分:0)
我想您正在寻找的解决方案是明确创建int
或bigint
列,具体取决于您的数据库。
所以它会像:
create_table(:categories) do |t| t.integer :created_by_user_id, null: false, foreign_key: true, index: true ...