【发布时间】:2017-12-14 07:04:08
【问题描述】:
在我的 rails 应用程序中,我有 2 个“远程模型”。这些模型不是 active_record 模型,而是使用 API 提供的 gem 在 API 上检索。
我将散列数据发送到库,库以散列的形式给我数据。我的问题更多关于如何生成正确的哈希
我的问题可以用以下 2 个模型来说明;
remote_user.rb
class RemoteUser
include ActiveModel::Model
include ActiveModel::Serialization
attr_accessor(
:Name
:Email
...)
end
def attributes{ 'Name'=> nil,'Email'=>nil .....}
attr_reader(:HeadquartersAdress)
def HeadquartersAddress=(data={})
if data.is_a? RemoteAdresse
@HeadquartersAddress=data
else
@HeadquartersAddress=RemoteAdresse.new(data)
end
end
remote_adresse.rb
class RemoteAdresse
include ActiveModel::Model
include ActiveModel::Serialization
attr_accessor(
:AddressLine1,
:AddressLine2,
:City,
:Region,
:PostalCode,
:Country
)
def attributes
{
'AddressLine1'=>nil,
'AddressLine2'=>nil,
'City'=>nil,
'Region'=>nil,
'PostalCode'=>nil,
'Country'=>nil
}
end
end
测试:
test = RemoteUser.new Name: 'Foo'
test.HeadquartersAddress=RemoteAddress.new City: 'singapour'
test.serializable_hash
>{"Name"=>"Foo","HeadquartersAddress"=>#<RemoteAdresse:0xa9c2ef8
@City="singapour"}
我希望有:{"Name"=>"Foo","HeadquartersAddress"=>{ "城市"="新加坡"}}
嵌套对象(地址)未序列化。我该怎么做才能使其也序列化?
【问题讨论】:
标签: ruby-on-rails api serialization