我怎样才能在rails应用程序中缩短这些非常冗长的路径?
# routes.rb
resources :courses do
resources :sections do
resources :lessons do
resources :sub_lessons
end
end
end
答案 0 :(得分:1)
我建议您按照导轨oficial guides进行操作。避免将资源嵌套深度超过1级被认为是一种很好的做法。也就是说,如果你真的需要这种级别的嵌套,你可以使用shallow
选项。这样至少你的路线会更干净。如上面引用的文档中所述:
避免深度嵌套的一种方法(如上所述)是生成在父级下作用域的集合操作,以便了解层次结构,但不嵌套成员操作。换句话说,仅构建具有最少量信息的路由以唯一地标识资源
您可以尝试这样的事情:
resources :courses, shallow: true do
resources :sections, shallow: true do
resources :lessons, shallow: true do
resources :sub_lessons
end
end
end
只需稍微玩一下,然后使用rake routes
查看路线的外观。
但是,您应该问自己的是,例如,我是否需要在部分下面进行课程学习?拆分它们可能更好,例如:
resources :courses do
resources :sections
end
resources :lessons do
resources :sub_lessons
end
这一切都取决于您在什么行动中所需的范围,例如,如果您需要根据课程而不是部分限制课程,那么您只需要将课程ID作为参数传递。