我刚刚开始研究在Rails中使用更高级的模型。我经常使用的一个模型非常成功,在该模型中,多对多交叉引用关系由一个类访问,该类本身是多对多关系中基类的子类。
这样,交叉引用类就可以充当基类的替身。
导航层次结构节点(NavigationNode)交叉引用到用户角色就是一个很好的例子。在交叉引用点处,类(RoleNavigationNode)可以继承自NavigationNode,并且仍然对用户角色有深入的了解。
我的问题是(在上面的例子中) RoleNavigationNode是否可以继承NavigationNode,同时访问交叉引用表,而不是NavigationNode访问的表--这当然是使用ActiveRecord。
我没有研究多态关联,这可能更合适。
预先感谢...,
发布于 2009-05-01 13:58:52
是否在子类上尝试过set_table_name?
另外,研究一下在模型类中设置@abstract_class。
最后,您需要的可能只是包含在两个模型中的Mixin。
不管怎么说,你要做的听起来有点不像ActiveRecord。你可能想要发布一个更清晰的例子来说明你想要实现的目标,也许我们可以想出一些更简单的东西。
发布于 2012-03-01 06:05:34
这在Rails 3中有效:
class Common < ActiveRecord::Base
@abstract_class = true
def common
"Foobar!"
end
end
class Model < Common
end
class AnotherModel < Common
end如果不设置abstract_class,Rails将在数据库中查找名为commons的表。
https://stackoverflow.com/questions/787349
复制相似问题