不同的索引动作

时间:2013-10-29 09:55:03

标签: ruby-on-rails ruby-on-rails-4

我看到和工作的很多应用程序经常会在索引操作中出现大量if条件。

例如:

class TaskController < ApplicationController

  def index
    if params[:project_id]
      Project.find(params[:project_id]).tasks
    else
      Task.scoped
    end
  end

end

最佳做法是什么?

我的想法是改为使用路由并使用一个名为index的动作和另一个名为index_by_project的动作,然后指向最后一个,如果params[:project_id]存在。这是一个很好的想法,我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

网址非常非常重要,它们会在您的头脑和代码中清晰显示。

如果您有时需要params[:project_id],它会为嵌套路线哭泣。

所以你最终得到了:

/tasks
/projects/:project_id/tasks