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