仪表板的Rails控制器设计模式

时间:2011-09-23 18:41:31

标签: ruby-on-rails model-view-controller controller dashboard

我希望有一个Dashboard页面,可以将多个模型中的信息收集到摘要视图中(没有自己的模型)。我应该如何处理Rails方式呢?我应该只使用索引操作创建一个dashboard_controller吗?

谢谢。

5 个答案:

答案 0 :(得分:4)

只想少一点Rails。我假设您的仪表板主要包含小部件?即一些自包含的元素,无论如何?为什么不把这些小部件变成你的模型(不是基于AR的)。将所有逻辑和数据检索封装在窗口小部件模型中。所以现在如果你想要RESTful,你可以举例WidgetsControllerindex动作作为仪表板。在第二步中,您可以使用show动作为仪表板的AJAX部分的每个小部件提供JSON数据。等。

只记得REST不一定是== CRUD,而Model不需要是ActiveRecord模型。 Rails强迫你进入MVC模式,这是一件很棒的事情,并且使得写得很差的Rails应用程序比许多PHP混乱更好,但有时候我们往往会忘记ActionController + ActiveRecord等之外有很多可能性

答案 1 :(得分:1)

你想要的是看看管理框架,看看它是否能解决你的需求,我喜欢TypusRailsAdmin否则你会想看看{{3以及它如何应用于Rails和您的应用程序。仪表板基本上只与您现有的模型和控制器逻辑接口,因为您不希望最终出现每种模型都有两组逻辑的情况。虽然我链接的博客是从2007年开始的,但您应该可以从中获取一些有用的信息,并了解您需要做什么。

如果您有任何问题,请随时提出。

答案 2 :(得分:0)

  

我应该创建一个只有索引操作的dashboard_controller吗?

我更喜欢将不执行CRUD的页面放在application_controller中的模型(例如仪表板)上。无需创建dashboard_controller。

答案 3 :(得分:0)

这是Presenter pattern的用例吗?

我即将实现一个ddashboard,这是我认为最好的设计,这将导致可维护的代码库。

答案 4 :(得分:0)

我的解决方案是运行

rails g controller Dashboards

然后手动创建app / models / dashboard.rb模型,其内容可以小到

class Dashboard end

当然,您可以将您需要的所有逻辑从其他模型中捕获数据。

回到控制器,您只需创建索引操作。最后,您手动创建app / views / dashboards / index.html.erb文件,其中包含您需要的任何内容。添加路线,你很高兴。如果您注意细节,可以将/ dashs中的URL更改为/ dashboard。就是这样,我认为这非常Rails-y。