【发布时间】:2011-01-28 07:54:22
【问题描述】:
我正在构建一个 Rails 应用程序,我想连接两个模型。
有一个称为“用户”的模型来处理用户身份验证,例如用户名和密码数据。然后是一个名为“profiles”的模型,其中包含一个人的位置、描述等。
我想链接模型,以便每个用户都有一个配置文件。我真的不知道该怎么做。有人介意分享一些关于如何做到这一点的见解吗?
【问题讨论】:
标签: ruby-on-rails-3
我正在构建一个 Rails 应用程序,我想连接两个模型。
有一个称为“用户”的模型来处理用户身份验证,例如用户名和密码数据。然后是一个名为“profiles”的模型,其中包含一个人的位置、描述等。
我想链接模型,以便每个用户都有一个配置文件。我真的不知道该怎么做。有人介意分享一些关于如何做到这一点的见解吗?
【问题讨论】:
标签: ruby-on-rails-3
你的协会看起来像
class User < AR:Base
has_one :profile
end
class Profile < AR:Base
belongs_to :user
end
哦,表配置文件必须有一个带有用户外键的 user_id 列。
【讨论】:
您希望在 User 模型和 Profile 模型上建立 has_one 和 belongs_to 关联。您的个人资料模型可能有一个 user_id 列,并且将是“belongs_to”关系,而用户将没有个人资料列,并且将是“has_one”关系。
然后在你的代码中你可以这样做:
profile = some_user.profile
或
user = some_profile.user
【讨论】:
这听起来像是一对一的关联。设置方法如下:
class User < ActiveRecord::Base
has_one :profile
end
class Profile < ActiveRecord::Base
belongs_to :user
end
Rails 让这种关系变得超级简单。 :)
确保 Profiles 表有一个 user_id 列,这样这个关联才会起作用。
【讨论】: