【问题标题】:Rails - query model in view or controller?Rails - 在视图或控制器中查询模型?
【发布时间】:2012-08-15 14:03:45
【问题描述】:

User 有很多 Folders。要实现Folderindex 动作,我可以在控制器中查询特定用户的文件夹:

class FoldersController < ApplicationController
  def index
    @folders = current_user.folders
  end
end

#app/views/folders/index.html.haml
- @folders.each
...

但我也可以跳过控制器:

#app/views/folders/index.html.haml
- current_user.folders.each
...

当然前者要优雅得多。但它们有本质的不同吗?我的意思是,它们有时是否有不同的表现或输出不同的结果?

【问题讨论】:

    标签: ruby-on-rails rails-activerecord separation-of-concerns


    【解决方案1】:

    可能需要相同的时间,但您的视图中不应包含逻辑。

    您应该在您的控制器中执行此操作,如您在两个示例中的第一个中所述。文件夹视图显示文件夹,不必知道是当前用户的文件夹。

    这样,您可以执行管理操作,您可以在其中检索所有文件夹并将其传递到变量“文件夹”中的同一视图。视图不关心它只代表您传递给它的任何文件夹列表。

    【讨论】:

      【解决方案2】:

      不会有真正的性能差异。这只是样式和代码分离的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多