2009-11-11 59 views
0

我在Ruby On Rails上真的很新,我正在使用一個帶有登錄和用戶註冊功能的baseApp。它還會在註冊時爲用戶創建一個空白配置文件。從某個視圖保存其他模型的字段

然後,我創建了一個遷移字段添加到配置文件表,如名字,性別,州,國家等

我今天準備這樣做,是爲了顯示這些領域的註冊表單,然後將它們保存在配置文件表中。我怎樣才能做到這一點?

感謝,

布賴恩

回答

0

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的嵌套表格部分。

+0

感謝您的回答。 當我添加<%@ user.profile.build%>一行時,會引發以下異常: 「當您沒有預料到它時,您有一個零對象! 評估nil.build時發生錯誤」 我已經將用戶模型的accep_nested_attributes_for:profile添加到行,但我不知道發生了什麼。 – 2009-11-11 14:22:50

+0

對不起,應該已經build_profile,現在修復。 – EmFi 2009-11-11 14:44:53

+0

那麼,它應該是<%@ user.profile.build_profile%>? 也不起作用。也許我錯過了別的東西。 – 2009-11-11 14:51:26

相關問題