【发布时间】:2016-07-27 02:44:08
【问题描述】:
我创建了两个模型调用Restaurant 和menu,以及Restaurant has_many Menu。
我通过键入
rails g model Menu name restaurant:references
但我发现我无法按Menu.create(name: "test1") 类型创建菜单
m1 = Menu.create(name: "test1")
(0.2ms) BEGIN
(0.2ms) ROLLBACK
=> #<Menu id: nil, name: "test1", restaurant_id: nil, created_at: nil, updated_at: nil>
然后我检查了migration和schema,在Rails5迁移中references变成了这个
#Menu migration
...
t.references :restaurant, foreign_key: true
我认为在 Rails4 中,它会像
t.references :restaurant, index: true
这就是我无法创建meun的原因吗?
更新
这里是迁移文件
class CreateMenus < ActiveRecord::Migration[5.0]
def change
create_table :menus do |t|
t.string :name
t.references :restaurant, foreign_key: true
t.timestamps
end
end
end
【问题讨论】:
-
您运行迁移了吗?
-
你能发布你的迁移文件吗?
-
我确实运行了迁移并且我已经更新了迁移文件。
标签: ruby-on-rails ruby migration ruby-on-rails-5