在索引文件中导出多个查询

时间:2014-02-24 01:53:41

标签: ruby-on-rails ruby

在post index.html.erb文件中包含多个结果是否正常?让我们在文件中说我想获得热门帖子和最近的帖子。我可以将它们放在索引文件中,还是应该做其他事情。像这样:

def index
 /* get recent posts */
 @News = News.all

/* get popular posts */
(popular posts code)
end

并在index.html.erb文件中,我会将热门帖子放在某种侧边栏中

2 个答案:

答案 0 :(得分:3)

如果这是一个关于在哪里放置执行查询的逻辑的问题,那么不,它们不应该在index.html.erb中。它们应该在对象模型中。您可以将逻辑放在对象控制器中,但这不是一个好的做法。

我只是在模型中定义一些方法,用于查询数据库以查找要显示的内容。我在几周前开发的应用程序中做了类似的事情:

  def self.upcoming
    Event.where('events.when > ?', Time.now).order(when: :asc)
  end

该类方法返回我的数据库中计划在当前时间之后开始的所有事件(有点像我猜的最近的帖子)。我使用Event.upcoming

从我的索引中调用它

答案 1 :(得分:0)

是的,这很常见。这样做没有害处。最近的帖子和热门邮报,甚至它与各自用户的评论可以采取行动。