在rails中使用foreign_key

时间:2013-07-03 15:30:56

标签: ruby-on-rails

什么时候,为什么以及如何在rails中使用foreign_key? 主键和外键有什么区别? 我是铁杆的新人,所以详细的解释将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:1)

如果无法从关联名称推断出外键名称,则在关联中使用foreign_key。例如,如果数据库中有usersgroups个表:

users
  -id
  -name
  -group_id
groups
  -id
  -name

您可以在UserGroup之间设置关联,而无需指定外键:

class User < ActiveRecord::Base
  belongs_to :group
end

class Group < ActiveRecord::Base
  has_many :users
end

但是,如果您在groupid表中有group_id而不是users,则必须这样做:

class User < ActiveRecord::Base
  belongs_to :group, foreign_key: :groupid
end

class Group < ActiveRecord::Base
  has_many :users, foreign_key: :groupid
end

答案 1 :(得分:1)

主键和外键是数据库设计中的概念。如果你想要正确理解它们,我建议我们暂时离开Rails并查看它们,因为它们直接应用于数据库。例如,请参阅:http://en.wikipedia.org/wiki/Foreign_key