Tôi đang tạo mối quan hệ một-một với người dùng được gọi là user_info. Dưới đây là giải pháp làm việc.Rails 3: Devise with has_one, các thuộc tính lồng nhau không được cập nhật
Trong 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
Trong user_info.rb
belongs_to :user
attr_accessible :first_name, :last_name
Trong devise/đăng ký/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 %>
Tôi hiểu rằng tôi không nên bao gồm xây dựng trong chế độ xem. Nhưng tôi không muốn 'chạm' bộ điều khiển hoặc mô hình phát triển. Đây là cách dễ dàng nhất.
Hóa ra rằng dòng build không hoạt động đúng. Nên là '<% resource.build_user_info nếu resource.user_info.nil? %> ' –