我有一个postgres DB用一个带有jsonb列的类支持我的Rails应用程序
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方法)。
发布于 2017-02-13 01:42:07
Storext仅用于类型转换简单值。我本人也没有尝试过在Virtus中存储复杂的对象,我还没有决定这是否应该是Storext的一部分。虽然它在后台使用Virtus,但我认为它不应该实现Virtus所能做的一切。
派对有点晚了,但我希望这能帮上忙。
https://stackoverflow.com/questions/36926927
复制相似问题