:b}].collect {|x| OpenStruct.new(x)}.to_json 在那里添加一个“表”记录? "[{\"table\-6ren">
gpt4 book ai didi

ruby-on-rails - 将散列收集到 OpenStruct 中创建 "table"条目

转载 作者:数据小太阳 更新时间:2023-10-29 06:38:20 25 4
gpt4 key购买 nike

为什么这样(在 Rails 控制台中评估)

[{:a => :b}].collect {|x| OpenStruct.new(x)}.to_json

在那里添加一个“表”记录?

"[{\"table\":{\"a\":\"b\"}}]

我只想要这个:

"[{\"a\":\"b\"}]

这是否意味着 Rails 的 to_json 方法以不同的方式处理 OpenStruct?当我在 irb 中尝试时,它不存在:

require 'ostruct'
[{:a => :b}].collect {|x| OpenStruct.new(x)}.inspect

最佳答案

因为 @table is a instance variable of OpenStructObject#as_json returns Hash of instance variables .

在我的项目中,我实现了 OpenStruct#as_json 来覆盖行为。

require "ostruct"
class OpenStruct
def as_json(options = nil)
@table.as_json(options)
end
end

关于ruby-on-rails - 将散列收集到 OpenStruct 中创建 "table"条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7835047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com