gpt4 book ai didi

ruby-on-rails - JSON 到 ActiveRecord(反序列化)

转载 作者:数据小太阳 更新时间:2023-10-29 07:04:13 26 4
gpt4 key购买 nike

我正在使用 Ruby、Grape 和 ActiveRecord 构建一个网络 API。来自 ASP.NET Web API 我习惯于从 JSON 到类对象的自动模型绑定(bind),然后可以使用 Entity Framework 保存。我一直在搜索一下,看看在使用 ActiveRecord 时是否有类似的东西,但没有发现任何让我觉得我遗漏了一些非常明显的东西。将 JSON 反序列化为 ActiveRecord 模型的最佳方法是什么?

更新

Matts 回答对简单类型非常有效,但是当我有关联时,我收到以下错误:ActiveRecord::AssociationTypeMismatch: Connector(#70297711668780) expected, got Hash(#70297701477140)

这是我正在运行的代码

class Card < ActiveRecord::Base
has_many :connectors, autosave: true
end

class Connector < ActiveRecord::Base
has_one :card
has_one :connected_card, :class_name => "Card", :foreign_key => "connected_card_id"
end

json = "{\"id\":\"1\", \"connectors\": [{\"id\": 1, \"card_id\":1}]}"
card = Card.new(ActiveSupport::JSON.decode(json))

最佳答案

您可以使用来自 ActiveSupport 的标准 JSON 解码,这会给你一个散列。

然后您需要从该散列构建一个新的 ActiveRecord 对象。

my_object = Foo.new(ActiveSupport::JSON.decode(some_json))

如果您希望它保存在一行中,请将 new 替换为 create

关于ruby-on-rails - JSON 到 ActiveRecord(反序列化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968940/

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