0
我有一个has_one配置文件的用户模型。用户模型具有用户注册时设置的名称属性。但是,我想让用户从配置文件的编辑视图更新该名称属性。我怎样才能做到这一点?如何从另一个关联模型的视图编辑模型的属性
我有一个has_one配置文件的用户模型。用户模型具有用户注册时设置的名称属性。但是,我想让用户从配置文件的编辑视图更新该名称属性。我怎样才能做到这一点?如何从另一个关联模型的视图编辑模型的属性
嵌套属性和fields_for表单助手是你的朋友。
class Profile < ActiveRecord::Base
belongs_to :user
accepts_nested_attributes_for :user
end
这允许你给嵌套的用户属性配置文件:
ruby-1.9.2-p0 > params = { :profile => { :some_profile_attr => "some value", :user_attributes => { :name => "some_new_name" }}}
=> true
ruby-1.9.2-p0 > profile.update_attributes params[:profile]
=> true
ruby-1.9.2-p0 > profile.user.name
=> "some_new_name"
当你想要更新的用户属性通过配置文件的形式,你可以使用fields_for形式助手:
<%= form_for @profile do |profile_form| %>
[..]
<%= profile_form.fields_for :user do |user_form| %>
<%= user_form.text_field :name %>
<% end %>
[..]
<% end %>
你为什么给用户形式的例子?我想编辑配置文件表单中的用户属性。我想我想要做的是你的例子,除了切换用户和个人资料... – 2011-03-27 06:55:57
是的,对不起。没有咖啡:-)我改变了它。 – 2011-03-27 07:13:00