了解Rake Routes输出

时间:2013-02-26 02:31:21

标签: ruby-on-rails-3.2

如果我做一个佣金路线,这就是我得到的:

population_management GET /population_management/:id(.:format)          population_management#show
                      GET /providers/:provider_id/scorecards(.:format)  scorecard#show
                      GET /patients/:id/summary(.:format)               patients#show

请注意,左边的第一个确实有一个额外的列,其值为population_managment但第二个和第三个没有,它们只是以GET开头。

第一个和另外两个有什么区别?哪一个更专业,更好做?是否有某种经验法则或铁路开发人员遵循的惯例来确定哪些更好?

  resources :population_management, only: [:show]

  match 'providers/:provider_id/scorecards', to: 'scorecard#show', via: :get
  match 'patients/:id/summary', to: 'patients#show', via: :get

1 个答案:

答案 0 :(得分:2)

第一列是路线的名称,对于设置链接(您可以使用的地方,例如population_management_path(id)而非必须硬编码/population_management/id)非常有用。

如果您想命名自己的自定义路线,可以使用:as进行命名,例如

match 'patients/:id/summary', to: 'patients#show', via: :get, as: "patient_summary"
# or slightly simpler
get 'patients/:id/summary', to: 'patients#show', as: "patient_summary" 

(您将需要在Rails 4中使用后者,但不推荐使用match。)

任何一种方法都可以,但是当您设置标准RESTful资源并且不希望单独定义所有路由时,resources(和resource)会更方便。 / p>

与往常一样,Rails Routing guide也很好地阅读了这个主题,值得一试。