0

我有一个定义关联的用户模型。has_one :profile

在用户编辑操作/页面上,我更新了用户属性。我想更新一个属于User模型但属于Profile的属性。

这是我的观点:

# _form.html.haml
=f.text_field :phone

使用这种形式,我怎样才能更新 的phone属性@user.profile

4

2 回答 2

1

您应该允许更新用户模型中的嵌套属性:

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
于 2013-01-10T15:43:52.297 回答
0

一般来说,如果您有两个表 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
于 2013-01-10T15:35:04.440 回答