User
有很多Folder
。要实现Folder
的index
动作,我可以在控制器中查询特定用户的文件夹:
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
...
当然,前者要优雅得多。但它们有本质的不同吗?我的意思是,它们有时是否具有不同的性能或输出不同的结果?
这可能需要相同的时间,但您的视图中不应有逻辑。
您应该在控制器中执行此操作,如您在两个示例中的第一个示例中所述。文件夹视图显示文件夹,它不必知道它是当前用户的文件夹。
这样,您可以执行管理操作,在其中检索所有文件夹并将其传递给变量"文件夹"中的同一视图。视图不关心它只表示您传递给它的任何文件夹列表。
不会有真正的性能差异。这只是样式和代码分离的问题。