2010-11-19 29 views

回答

1

没有必要,如果你只是想有一个Web应用程序访问数据库。如果你想用另一个应用程序或直接访问数据库,我会建议你创建外键,因为它们会让你更好地了解那里正在发生的事情,不会让你插入错误的信息或错误地删除(如果你设置删除选项)

+0

你是指a.destroy删除?或者:dependent =>:destroy? – wizztjh 2010-11-19 18:25:17

+1

在Rails中,删除只会删除单条记录,销毁将删除记录和子女。但是,另外当你通过控制台或GUI进入你的数据库时,如果由于某种原因你试图删除一条记录,它不会让你如果这会导致离开任何寄养儿童。 – 2010-11-19 19:29:18

3

您不需要创建任何这样的约束。您只需创建一个独立的迁移来创建连接表。可以说,你有2个模型与habtm,用户和角色。

>> script/generate migration roles_users 

在迁移

create_table :roles_users, :id => false do |t| 
    t.references :user 
    t.references :role 
end 

这就是它!

+0

ohh,谢谢,我只是好奇你为什么禁用:ID? – wizztjh 2010-11-19 18:23:14

+0

因为不需要id主键。 – Shreyas 2010-11-19 18:26:01