如果我做一个佣金路线,这就是我得到的:
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
答案 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也很好地阅读了这个主题,值得一试。