2

有什么不同?的优点和缺点?这对我来说有点困惑。

谢谢。

4

3 回答 3

6

当关系为1-1时,您将belongs_to放在具有外键的表中,并将has_one放在引用的表中。

当关系为1-n时,您将belongs_to放在具有外键的表中,并将has_many放在引用的表中

于 2012-05-07T12:40:00.200 回答
6

属于带有外键的表。对于以下内容:

class User < ActiveRecord::Base
  has_one :profile
end
class Profile < ActiveRecord::Base
  belongs_to :user
end

profile 表需要有一个 user_id 字段来引用 users 表中的记录。

知道哪个是属于_to,哪个是has_one是许多人都在努力解决的问题。一般来说,如果has_one 可能变成has_many,那么这就是需要has_one 的一面。

于 2012-05-07T12:44:03.177 回答
4

你将需要两者。你一个在一个班级,另一个在你想联系的班级。

例如

Class User 
  has_one :profile
end

Class Profile
  belongs_to :user
end

正确设置关系后,优点是您可以使用user.profileor访问它们profile.user

于 2012-05-07T12:43:28.567 回答