Rails - 在视图或控制器中查询模型?

时间:2012-08-15 14:03:46

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

User有很多Folder个。要实现index的{​​{1}}操作,我可以在控制器中查询特定用户的文件夹:

Folder

但我也可以跳过控制器:

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

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

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

2 个答案:

答案 0 :(得分:1)

可能需要相同的时间,但你的观点中不应该有逻辑。

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

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

答案 1 :(得分:0)

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