我是否需要在迁移中创建外键才能让has_many belongs_to工作? 我可以不创建任何外键,例如:options => “CONSTRAINT fk_box_storage REFERENCES框(id)”并且仍然在模型中使用has_many和belongs_to?
答案 0 :(得分:3)
您无需创建任何此类约束。您只需创建独立迁移即可创建连接表。 可以说,你有2个模型,包括habtm,User和Role。
>> script/generate migration roles_users
在您的迁移中
create_table :roles_users, :id => false do |t|
t.references :user
t.references :role
end
就是这样!
答案 1 :(得分:1)
如果您只有一个访问数据库的Web应用程序,则无需。如果你想用另一个应用程序或直接访问数据库,我建议你创建外键,因为它们可以让你更好地了解那里发生了什么,不会让你插入错误信息或删除错误(如果你设置了删除选项)