我正在开发一个数据模型为的项目:
为简化架构,假设我们有以下根类:
module Marketplace
module Food
class Fruit
…
end
end
end
还有几个专业课程:
module Marketplace
module Food
class Peach < Marketplace::Food::Fruit
…
end
class Tomato < Marketplace::Food::Fruit
…
end
end
端
我希望Rails能够显示(和管理)所有水果,无论它们的性质如何,都不会修改模型完美地从Rails中运行。
问题是ActionView似乎使用了一定数量的约定来定义将基于真实类名的路径和URL。
因此,如果我在带有显示/删除操作的表中呈现Apple,则rails将查找名为marketplace_food_apple_path的方法,类似当然不存在。
有没有办法表明Apple是Fruit的ActionView :: Base结构?
我希望这个“基础强制转换”对于基于Ruby的框架来说是“微不足道的”,但似乎这个面向对象模型的简单示例不适用于Rails?
如何在rails中管理“复杂对象”数据模型?
或者它只是超出了Rails的范围?
感谢您的任何指示!
答案 0 :(得分:0)
http://railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/&lt; - 可能是你想要的,除非你只想争论单继承与多继承稻草人。
答案 1 :(得分:-1)
好的,因为我看到有很多有用的答案;)。
它基本上证实了我对Rails的怀疑,我认为它更像是一种VB:易于学习,适合小东西(购物或社区网站),但非常有限。
Rails在处理复杂的业务逻辑和数据时完全超出了范围!
由于Rails 3.0似乎不是答案(好吧我们有几个ORM,但我们仍然无法在模型中使用继承)我切换到 Ramaze ,一个小框架,使没有关于如何组织数据的假设,使其适合几乎任何类型的网络需求。
如果您正面临使用Rails的模型约束,也许您应该忘记Rails并检查Ramaze!