控制器应该从这个params散列更新记录

时间:2012-11-07 18:40:24

标签: ruby-on-rails

这可能是一个简单的问题。我正在阅读rubyonrails.org(http://guides.rubyonrails.org/form_helpers.html)上的表单助手指南。在7.3节中,它展示了如何创建一个返回params哈希的表单,如下所示:

 {'person' => {'name' => 'Bob', 'address' => {'23' => {'city' => 'Paris'}, '45' => {'city' => 'London'}}}}

Bob在哈希中有2个地址。那么在控制器中为了同时更新Bob的两个地址呢?

感谢。

更新:

这是我假设模型看起来像的样子,但我仍然不知道控制器应该是什么样的同时更新Bob的两个地址。

person.rb

attr_accessible :name, :addresses_attributes 

has_many :addresses
accepts_nested_attributes_for :addresses

address.rb

attr_accessible :city

belongs_to :person

谢谢。

1 个答案:

答案 0 :(得分:0)

传统上,我建议尝试以下方法:

def update
  @person = Person.find(params[:id])
  if @person.update_attributes(parmas[:person])
    #update successful, now do what you wanna do
  else 
    #update was unsuccessful 
  end
end

尝试此操作,如果您收到任何错误,请回来。但这可能不是学习东西的正确方法。您应该按照Getting Started和后续教程进行操作。