Rails 3: разработка с has_one, вложенные атрибуты не обновляются - PullRequest
5 голосов
/ 14 октября 2011

Я создаю взаимно-однозначное отношение к пользователю с именем user_info. Ниже приведено рабочее решение.

In 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

In 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 %>

Я понимаю, что не должен включать сборку в представление. Но я не хочу «трогать» контроллер или модель устройства. Это самый простой способ.

Ответы [ 2 ]

3 голосов
/ 18 мая 2012

Оказывается, что линия построения не работает должным образом в представлении.

Должно быть: <% resource.build_user_info if resource.user_info.nil? %>

1 голос
/ 14 октября 2011

Попробуйте :autosave => true на ваш звонок accepts_nested_attributes_for

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...