在使用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%>以進行調試),但仍然沒有顯示該族的表單。
您可以發佈日誌當用戶註冊時從你的rails會話輸出? – 2013-02-12 10:13:39
謝謝,我剛剛更新了這個問題。 – Luc 2013-02-12 11:19:23
其實我想從日誌中看到的是請求的細節。很明顯,問題是表單提交的內容,日誌將顯示錶單參數散列。 – 2013-02-12 13:43:27