【发布时间】:2021-06-13 22:06:10
【问题描述】:
所以目前我有一个模型类
class Book
# author_id
end
我有一个简单的委托类用于上面的模型类
class BookDecorator < SimpleDelegator
attr_accessor :list_of_reviews
def initialize
super
@list_of_reviews = []
end
end
我在 Rails 控制台上测试过
-> book = Book.find(1)
-> book = BookDecorator(book)
-> book.list_of_reviews
-> []
但是当我将对象序列化为 JSON 时
-> book = book.to_json
-> Deserialize back
-> book = JSON.parse(book)
-> book.list_of_reviews
-> NoMethodError: undefined method `list_of_reviews` for <String:0x00007>
如何将 JSON 反序列化回带有装饰器的 ActiveRecord?
之所以必须序列化为 JSON,是因为我必须将其存储在 Redis 中。
稍后反序列化以访问 list_of_reviews 方法
【问题讨论】:
标签: ruby-on-rails