我有一个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问题,因为我刚刚将Firtus包含在FooCollection中,它也从data
哈希消失了(我认为Storext
基于Virtus
并且{可以接受Virtus
方法。
答案 0 :(得分:0)
创建Storext仅用于输入简单值。我自己并没有在Virtus中存储复杂的物体,我还是不确定它是否应该成为Storext的一部分。虽然它在后台使用Virtus,但我认为它不应该实现Virtus可以做的所有事情。
派对有点晚了,但我希望这会有所帮助。