【发布时间】:2012-11-17 03:25:37
【问题描述】:
我们很快将重写一个使用了 5 年的 Rails 应用程序,它的代码基础非常不完善,从头开始在一个全新的 Rails 3 应用程序中使用所有新的热点。当前的应用程序有一个大量的自定义管理 UI 后端,它完全依赖于现在的管理框架。只是一些基本的控制器类和一些有用的 CSS 约定。但是维护这个 UI 需要做很多工作,特别是如果我们希望它看起来不错。
所以我在市场上寻找一个 Admin UI 框架,它可以让简单的东西变得微不足道,但不会在形式和功能上获得更复杂的自定义方式。
顶级竞争者ActiveAdmin 似乎很受欢迎,玩了一会儿之后我有些担心。它似乎声明了一个存在于单个 ruby 文件中的完整唯一的 DSL。这有点简洁,但它也与大多数其他 Rails 应用程序的架构方式完全不同。它抽象了视图、控制器的助手,并为您提供了一个纯 ruby DSL。在我看来,这会妨碍我们在管理视图中做一些棘手的事情,更高级的自定义事情。 DSL 很棒,除非您想做一些他们不明确支持的事情。
我的实验中的“资源”示例,没有控制器也没有视图。
ActiveAdmin.register Region do
menu parent: "Wines"
show title: :name
index do
column(:zone) { |o| link_to o.zone, admin_region_path(o) }
column(:name) { |o| link_to o.name, admin_region_path(o) }
default_actions
end
end
所以,问题:
- 是不是基于标准Rails MVC架构在单独的文件中,以及管理区域的典型控制器继承实现,实际上我应该关心什么?从长远来看,它会妨碍可扩展性吗?
- ActiveAdmin 中的 DSL 是否比我认为的更好、更灵活?
- 我是否应该考虑其他一些更适合我的高度定制目标的框架?
- 我应该停止懒惰并自己动手吗?
- 选择
Mongoid而不是MySQL作为数据库是否会影响上述任何问题?
【问题讨论】:
-
1:否,是 2:是 3:是 4:是 5:否
-
换句话说,ActiveAdmin 有其优点:真正应用程序的后端。它不能替代真正的应用程序。
-
@MarkThomas 也会有一个前端,从头开始。我只是在谈论一个可能会有十几个有福的管理员会使用的后端。
-
这样的话,ActiveAdmin 没问题,我就不用太担心可扩展性了。
标签: ruby-on-rails ruby architecture activeadmin