0

我有一个与 Profile 模型有 has_one 关系的 User 模型。表单生成正确(我看到了 contact_person 的附加字段),但在创建新记录时,仅保存用户。我错过了什么?

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

  has_one :profile
  accepts_nested_attributes_for :profile
end

class Profile < ActiveRecord::Base
  belongs_to :user
end

这是我的表格:

<% @user.build_profile if @user.profile.nil? %>
<%= f.fields_for :profile do |profile| %>
  <%= profile.label :contact_person %>
  <%= profile.text_field :contact_person %>
<% end  %>
4

2 回答 2

1

您必须在用户模型中添加 attr_accessible :profile_attributes。

  class User < ActiveRecord::Base

    attr_accessible :profile_attributes

      devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

      has_one :profile
      accepts_nested_attributes_for :profile
    end
于 2013-11-01T04:53:14.257 回答
0

因此,我从 Wiki 中找到了有关使用设计和强大参数的信息,这解决了我的问题。

于 2013-11-03T13:08:10.743 回答