1

我们何时、为什么以及如何在 Rails 中使用 foreign_key?主键和外键有什么区别?我对rails有点新,所以详细的解释将不胜感激。谢谢你。

4

2 回答 2

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_idusers表中,你将不得不这样做:

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

class Group < ActiveRecord::Base
  has_many :users, foreign_key: :groupid
end
于 2013-07-03T15:36:14.090 回答
1

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

于 2013-07-03T15:39:09.980 回答