У меня есть модель User, которая has_one :preference
, но я хотел бы присоединиться к форме для обновления пользователя и форме для обновления его предпочтений, поэтому в форме пользователя я добавил:
<% if !@user.new_record? %>
<div class="field">
<%= label_tag 'user_preference_quote_type', 'Type de citations' %><br />
<%= text_field_tag 'user_preference_quote_type', @user.preference.quote_type %>
</div>
<div class="field">
<%= label_tag 'user_preference_locale', 'Langage' %><br />
<%= text_field_tag 'user_preference_locale', @user.preference.locale %>
</div>
<% end %>
И в моем контроллере:
def update
@user = User.find(params[:id])
@user.preference.quote_type = params[:user_preference_quote_type]
@user.preference.locale = params[:user_preference_locale]
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(@user, :notice => t('c.users.update')) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
Но настройки не изменились бы, как я могу это сделать?И есть ли лучший способ сделать это?