【发布时间】:2011-12-09 17:58:12
【问题描述】:
我有一个用户模型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
但偏好不会改变,我该怎么做?还有更好的方法吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 forms model-view-controller