我有一个定义关联的用户模型。has_one :profile
在用户编辑操作/页面上,我更新了用户属性。我想更新一个不属于User模型但属于Profile的属性。
这是我的观点:
# _form.html.haml
=f.text_field :phone
使用这种形式,我怎样才能更新 的phone
属性@user.profile
?
我有一个定义关联的用户模型。has_one :profile
在用户编辑操作/页面上,我更新了用户属性。我想更新一个不属于User模型但属于Profile的属性。
这是我的观点:
# _form.html.haml
=f.text_field :phone
使用这种形式,我怎样才能更新 的phone
属性@user.profile
?
您应该允许更新用户模型中的嵌套属性:
class User
has_one :profile
accepts_nested_attributes_for :profile
end
然后在您的表单中使用该fields_for
方法将 Profile 中的字段嵌套到 User 表单中:
= f.fields_for :profile do |p|
= p.text_field :phone
一般来说,如果您有两个表 user 和 profile 具有关联,那么 -
用户表 = id、first_name、last_name
个人资料表 = id、user_id、电话
协会:
User Class
-
class User < ActiveRecord::Base
has_one :profile
end
Profile Class
-
class Profile < ActiveRecord::Base
belongs_to :user
end
User Controller
-
def index
@user = current_user
@user_phone = @user.profile.phone
end