gpt4 book ai didi

ruby-on-rails - 如何从序列化为 JSON 的 ActiveModel 对象恢复关联类?

转载 作者:太空宇宙 更新时间:2023-11-03 16:56:07 25 4
gpt4 key购买 nike

我有一个包含 ActiveModel 的类需要一些“关联”,如下所示:

a      = ActiveModelClass.new
a.user = User.find(1)

我只是为此使用了一个 attr_accessor:

attr_accessor :user

### Elsewhere ###

a.user.name # => "Kevin"

到目前为止一切顺利。但现在我想将它序列化为 JSON:

json = a.to_json
b = ActiveModelClass.new(ActiveSupport::JSON.decode(json))

但是现在,用户是一个散列:

b.user.class # => Hash

我怎样才能干净利落地将这些“关联”恢复为它们原来的类的对象?

最佳答案

我有点困惑:我觉得你已经把你的例子抽象到了难以理解的地步。你有这样的东西吗?

b.user 
=> {:name => "Kevin", :email => "kev@foo.foo"}

?

如果是这样,您只需将它传递给 .new 或 .create 方法,就可以从这个散列中创建一个用户对象:

user = User.create(b.user) 

然后您可以对该用户对象执行您想要的操作,包括将 b.user 设置为等于它。

关于ruby-on-rails - 如何从序列化为 JSON 的 ActiveModel 对象恢复关联类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185972/

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