我正在为名为user_info的用户创建一对一的关系。 以下是工作解决方案。
在user.rb
中has_one :user_info
accepts_nested_attributes_for :user_info, :allow_destroy => true
attr_accessible :username, :email, :password, :password_confirmation, :remember_me, :user_info_attributes
在user_info.rb
中belongs_to :user
attr_accessible :first_name, :last_name
在devise / registrations / edit.html.erb
中<% resource.build_user_info if resource.user_info.nil? %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
...
<%= f.fields_for :user_info do |info| %>
<%= info.text_field :first_name %>
我知道我不应该在视图中包含构建。但我不想“触摸”设计控制器或模型。这是最简单的方法。
答案 0 :(得分:3)
原来,构建线在视图中无法正常工作。
应该是:
<% resource.build_user_info if resource.user_info.nil? %>
答案 1 :(得分:1)
在致电:autosave => true
accepts_nested_attributes_for