2011-03-27 81 views

回答

2

嵌套属性和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 %> 
+0

你为什么给用户形式的例子?我想编辑配置文件表单中的用户属性。我想我想要做的是你的例子,除了切换用户和个人资料... – 2011-03-27 06:55:57

+0

是的,对不起。没有咖啡:-)我改变了它。 – 2011-03-27 07:13:00

相关问题