【发布时间】:2015-11-01 23:42:41
【问题描述】:
我想在我的网站前面放一些统计数据,例如:
# jobs/index.html.haml
.panel
.panel-heading
%h4 Statistics
.panel-body
.col-md-9.col-xs-9
%h5.pull-left Users
.col-md-3.col-xs-3
%h5.pull-right= @usercount
.col-md-9.col-xs-9
%h5.pull-left Companies
.col-md-3.col-xs-3
%h5.pull-right= @companycount
.col-md-9.col-xs-9
%h5.pull-left Categories
.col-md-3.col-xs-3
%h5.pull-right= @categorycount
.col-md-9.col-xs-9
%h5.pull-left Total offers gathered
.col-md-3.col-xs-3
%h5.pull-right= @jobcount
目前这些变量都设置在控制器中:
# controller: jobs, action: index
@jobcount = Job.count
@usercount = User.count
@categorycount = Category.count
@companycount = Job.distinct.count('company')
但我认为这是在 MVC 中执行此操作的最糟糕的方式。谁能告诉我应该怎么做?
【问题讨论】:
-
在模型视图上使用 draper gem 进行装饰,请参阅github.com/drapergem/draper
-
railscasts.com/episodes/286-draper 一个很好的导轨浇铸在布料上
-
好吧,我知道您对违反 REST 逻辑感到难过,但如果您需要在工作索引中添加其他数据,只需加载它... :)
-
是的,我觉得我这样做完全违反了 MVC 规则,这就是为什么我想学习如何加载这样的数据的最佳实践,兄弟
-
这是一个统计视图,您可能可以创建一个数据库视图,或者一次返回所有这些统计数据的数据库函数。
标签: ruby-on-rails ruby model-view-controller