【发布时间】:2011-02-23 16:14:14
【问题描述】:
我正在做一个数据模型所在的项目:
- 在单独的 gem 中实现
- 不使用 ActiveRecord,也不使用任何关系数据库存储(实际上它依赖于 couchdb)
- 使用命名空间
- 大量使用类继承
为了简化架构,假设我们有以下根类:
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 的范围?
感谢任何指点!
【问题讨论】:
标签: ruby-on-rails oop model controller