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

不會有真正的性能差異。這只是一個風格和代碼分離的問題。