【问题标题】:Avoid symbolication of keys for ActiveResource避免 ActiveResource 的键符号化
【发布时间】:2012-04-24 22:45:38
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 你在用细节哈希做什么?它只是正在处理,还是您将其保存在某个地方?

标签: ruby-on-rails hash activeresource


【解决方案1】:

您是否尝试过手动设置架构?不知道能不能这样设置嵌套属性。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      相关资源
      最近更新 更多