在向 Devise 注册新用户期间,我需要同时为该新用户创建一个新的 Family 对象链接(该用户是一家之主)。
我的家庭模型:
belongs_to user
我的用户模型:
attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :family
has_one :family
accepts_nested_attributes_for :family
在设计/注册/new.html.erb
<%= simple_form_for([resource, Family.new], :as => resource_name, :url => registration_path(resource_name), :html => {:class => 'form-vertical' }) do |f| %>
<%= f.error_notification %>
<%= display_base_errors resource %>
<%= f.input :name, :autofocus => true %>
<%= f.input :email, :required => true %>
<%= f.input :password, :required => true %>
<%= f.input :password_confirmation, :required => true %>
<% f.fields_for :family do |family_form| %>
<p><%= family_form.label :name %></p>
<p><%= family_form.text_field :name %></p>
<% end %>
<%= f.button :submit, 'OK', :class => 'btn-primary' %>
<% end %>
但这不起作用,我发现了几个这样的问题,但我没有设法解决这个问题。
任何想法 ?
更新 1
我收到以下错误:
undefined method `email' for #<Family:0x007f892a12c310>
家庭是一个没有任何电子邮件的模型,只有一个名字。我只需要能够在创建新用户时创建一个具有名称的新 Family 对象(并将其链接到用户)。
更新 2
我在注册控制器中添加了 resource.build_family。家庭对象已正确创建并与用户关联(我可以在 new.html.erb 中显示 <%= resource.family %> 以进行调试),但仍然没有为家庭显示任何表单。