1

User有许多Folder s。要实现的Folderindex行动,我可以查询特定用户的文件夹中的控制器:Rails - 在视图或控制器中查询模型?

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 
... 

当然前者更优雅。但它们有很大不同吗?我的意思是,他们是否有不同的表现或有时会输出不同的结果?

回答

1

它可能需要相同的时间,但是您的视图中不应该有逻辑。

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

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

0

不会有真正的性能差异。这只是一个风格和代码分离的问题。