如何从json轻松更新update_attributes

时间:2013-08-17 13:19:14

标签: ruby-on-rails ruby json ruby-on-rails-3

说我有这个型号:

class Address < ActiveRecord::Base
  belongs_to address_type
  attr_accessible :text
end

还有另一种类型的模型:

class AddressType < ActiveRecord::Base
  has_many addresses
  attr_accessible :name
end

在这个模型中有三种类型:

name => residential
name => po_box
name => government 

现在,假设我有这个传入的JSON:

{
    text: "some text here",
    address_type: "po_box"
}

我希望能够在接受JSON的控制器中执行类似的操作,而无需先找到address_type对象:

address = Address.new
address.update_attributes(params) 

我发现this gem但似乎只是设计用于JSON输出。

1 个答案:

答案 0 :(得分:1)

如果您在params哈希中收到JSON,可以通过以下方式转换它:

data = JSON.parse(params[:name_of_the_JSON_fields])
address = Address.new
address.update_attributes(data)