我希望在 Rails 中使用 Multiple/Class 表继承来启动一个项目。为此,我计划使用 Sequel 而不是 ActiveRecord。文档可以在这里找到 - Sequel - 类表继承
我的插件在一定程度上可以工作,我可以调用 child.first ,它会给我第一个子类,这不是父类的第一个,它包括子表中的数据。问题正在转向另一个方向......
所以如果我通过父类加载一个数据库行,它恰好是一个 child2 类
p = Parent.first <Parent @values = {kind = "Child2"}>
然后尝试使用它应该给我的文档中列出的刷新命令来获取子数据
p.refresh <Parent @values = {kind = "Child2", child2data = "data from child 2 table"}>
但它没有,它只是返回未改变的父级
我在我的父类中包含了一个模型图
plugin :class_table_inheritance,:key=>"kind", :model_map=>{"Child1"=>:Child1,"Child2"=>:Child2}
我玩过不同的价值观和其他废话,试图让它发挥作用,但没有成功。
我理想中想要的是能够找到父类并调用一个方法来实例化子类,所以
p = Parent.first
c = p.child
c <Child2 @values = {kind: "Child2", Child2data: "data from child2 table">
我觉得我可能可以在我的父类中破解/添加一个方法来做到这一点,但在这一点上我感觉很简单,我不应该这样做,而且刷新方法不起作用的事实让我和我一样担心解决
有人有答案吗?ty阅读
ps我正在使用rails 5,rails-sequel gem,并且正在一个或多或少空白的项目中工作,我只想拥有一个像样的CTI设置,因为对我来说它似乎比多态关联更优雅。