0
我在Ruby On Rails上真的很新,我正在使用一個帶有登錄和用戶註冊功能的baseApp。它還會在註冊時爲用戶創建一個空白配置文件。從某個視圖保存其他模型的字段
然後,我創建了一個遷移字段添加到配置文件表,如名字,性別,州,國家等
我今天準備這樣做,是爲了顯示這些領域的註冊表單,然後將它們保存在配置文件表中。我怎樣才能做到這一點?
感謝,
布賴恩
我在Ruby On Rails上真的很新,我正在使用一個帶有登錄和用戶註冊功能的baseApp。它還會在註冊時爲用戶創建一個空白配置文件。從某個視圖保存其他模型的字段
然後,我創建了一個遷移字段添加到配置文件表,如名字,性別,州,國家等
我今天準備這樣做,是爲了顯示這些領域的註冊表單,然後將它們保存在配置文件表中。我怎樣才能做到這一點?
感謝,
布賴恩
accepts_nested_attributes_for提供你所需要的一切。
只要你讓你的用戶擁有一個配置文件,你就可以輕鬆前往。
將accepts_nested_attributes_for :profile
添加到用戶模型。然後設置你的表格是這樣的:
<% form_for :user do |f| %>
...
User model fields
...
<% @user.build_profile if @user.profile.nil? %>
<% f.fields_for :profile do |p| %>
<%= p.label :first_name %>
<%= p.text_field :first_name %>
...
Profile model fields
...
<% end %>
<% end %>
控制器不需要修改。
欲瞭解更多詳情,請閱讀FormHelper的嵌套表格部分。
感謝您的回答。 當我添加<%@ user.profile.build%>一行時,會引發以下異常: 「當您沒有預料到它時,您有一個零對象! 評估nil.build時發生錯誤」 我已經將用戶模型的accep_nested_attributes_for:profile添加到行,但我不知道發生了什麼。 – 2009-11-11 14:22:50
對不起,應該已經build_profile,現在修復。 – EmFi 2009-11-11 14:44:53
那麼,它應該是<%@ user.profile.build_profile%>? 也不起作用。也許我錯過了別的東西。 – 2009-11-11 14:51:26