我有一个带有设计的rails 3.1应用程序:
现在我想补充一下:
我该怎么做?我尝试了几个想法,也来自堆栈溢出,但似乎无法让它工作。我尝试了嵌套属性,这是不行的,这样做会在用户注册时在数据库中创建一个配置文件记录,插入名字和姓氏
我的注册#new view:
= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
= devise_error_messages!
= f.input :username, :label => 'Username'
= f.input :email, :label => 'Email'
= f.input :password, :label => 'Password'
= f.input :password_confirmation, :label => 'Password confirm'
// start fields for profile
= f.fields_for :profile do |f|
= f.label :bod_day
= f.text_field :bod_day
// end fields for profile
= f.button :submit, t(:submit, :scope => :register)
在我的用户模型中,我有这个:
accepts_nested_attributes_for :profile
答案 0 :(得分:5)
我认为问题在于,在呈现表单时该用户上不存在任何配置文件,一种简单的方法可以在渲染字段之前在内存中构建它:
= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
= devise_error_messages!
= f.input :username, :label => 'Username'
= f.input :email, :label => 'Email'
= f.input :password, :label => 'Password'
= f.input :password_confirmation, :label => 'Password confirm'
// make a new profile in memory
= resource.build_profile
// start fields for profile
= f.fields_for :profile do |f|
= f.label :bod_day
= f.text_field :bod_day
// end fields for profile
= f.button :submit, t(:submit, :scope => :register)
答案 1 :(得分:2)
除了Nesbitt的解决方案,请将其添加到您的模型
attr_accessible ..., :profile_attributes