0

如果我执行 rake 路线,这就是我得到的:

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.

第一个和其他两个有什么区别?哪个更专业更好做?Rail 开发人员是否遵循某种经验法则或约定来确定其中哪一个更好?

  resources :population_management, only: [:show]

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

1 回答 1

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它已被弃用)。

任何一种方法都可以,尽管resources(and resource) 在您设置标准 RESTful 资源并且不想单独定义所有路由时更方便。

与往常一样,Rails 路由指南也是该主题的好读物,值得一试。

于 2013-02-26T02:43:51.643 回答