避免使用ActiveResource的键的符号

时间:2012-04-12 14:51:28

标签: ruby-on-rails hash activeresource

我使用名为“Setting”的ActiveResource模型连接到外部Web服务,该服务提供了一些响应,如下例所示:

{"setting" => {"id" => 10, :details => {"10a" => 7, "10b" => 8}}}

问题是,ActiveResource尝试对details哈希中的所有键进行符号化,但这是不可能的,并引发NameError: wrong constant name 10a。有没有机会禁止符号化甚至避免将details转换为单独的对象?

由于

2 个答案:

答案 0 :(得分:0)

您是否尝试手动设置架构?我不知道你是否可以像这样设置嵌套属性。

class Setting < ActiveResource::Base
   schema = {'setting' => {'id' => :integer, :details => {'10a' => :integer, '10b' => :integer}}}
end

答案 1 :(得分:0)

我假设单独的对象是HashWithIndifferentAccess?在使用之前,您可以尝试在详细信息哈希上调用#deep_stringify_keys吗?