我有一个 postgres 数据库支持我的 Rails 应用程序,它带有一个带有 jsonb 列的类
class Product < AR::B
include Storext.model(data: {})
store_attributes :data do
thing_one String
thing_two Boolean # Not actually showing up in the `data` hash
foos FooCollection[Foo]
end
end
class FooCollection < Array
def <<(obj)
if Hash
super(Coupon.new(obj)
else
# Other coersions
end
end
end
class Foo
include Storext.model
attribute :id, Integer
attribute :price, Float
attribute :regular_price, Float
end
但是终端中的 Foo 正在返回undefined method after_initialize for Foo:Class
有没有办法像嵌套Storext
模型一样嵌套模型Virtus
?如果是这样,是否有一种惯用的方法可以在嵌套类上添加验证?(放弃 Storext,纯 Virtus 解决方案也可以回答这个问题)
也许这是一个 A/B 问题,因为我刚刚在 FooCollection 中包含了 Virtus,它也从data
哈希中消失了(我认为这很奇怪,因为Storext
它基于Virtus
并且可以接受Virtus
方法)。