2009-11-11 39 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

相关问题