过去一个小时在 heroku 上运行 migrate 想知道为什么以下 migrate 没有将主键设置为id
我想要的:
class CreateProducts < ActiveRecord::Migration
def change
create_table :products, :primary_key => :product_id do |t|
t.string :name
end
end
end
然后我认为我传递参数的方式可能有问题,所以我将其更改为
class CreateProducts < ActiveRecord::Migration
def change
create_table :products, {:primary_key => :product_id} do |t|
t.string :name
end
end
end
id
突然之间,Rails在执行连接时不再尝试查找列。
这可能有点模糊,但为什么大括号很重要?我的印象是,从 Ruby 2.0.0 开始,传递给方法的尾随命名参数会被自动视为哈希(在部署期间,它说我使用的是 ruby 2.0.0)
(我假设create_table ...
是一个方法调用)