我看到和工作的很多应用程序经常会在索引操作中出现大量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]
存在。这是一个很好的想法,我该如何实现呢?
答案 0 :(得分:0)
网址非常非常重要,它们会在您的头脑和代码中清晰显示。
如果您有时需要params[:project_id]
,它会为嵌套路线哭泣。
所以你最终得到了:
/tasks
/projects/:project_id/tasks