要让has_many属于工作,需要迁移中的外键吗?

时间:2010-11-19 15:43:54

标签: ruby-on-rails

我是否需要在迁移中创建外键才能让has_many belongs_to工作? 我可以不创建任何外键,例如:options => “CONSTRAINT fk_box_storage REFERENCES框(id)”并且仍然在模型中使用has_many和belongs_to?

2 个答案:

答案 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应用程序,则无需。如果你想用另一个应用程序或直接访问数据库,我建议你创建外键,因为它们可以让你更好地了解那里发生了什么,不会让你插入错误信息或删除错误(如果你设置了删除选项)