Ruby on rails 3.2 理解Rake路由输出

Ruby on rails 3.2 理解Rake路由输出,ruby-on-rails-3.2,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

这是我做一个耙路线时得到的结果:

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\u management,但是第二个和第三个没有,它们只是从
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

第一列是路由的名称,这对于设置链接(例如,您可以使用
人口管理\u路径(id)
而不必硬编码
/population\u管理/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" 
(如果不推荐使用
match
,则需要在Rails 4中使用后者)

这两种方法都可以,尽管当您设置标准RESTful资源时,
resources
(和
resource
)更加方便,而且不需要单独定义所有路由


像往常一样,这本书也是关于这个主题的很好的读物,值得一看。

太好了。谢谢。所以我更建议像我做的第一本书那样使用“资源”,这样FID路径和URL也更容易,而且这是Rails 3做路由的方法,当我需要自定义路由时,我应该使用“As”然后在那里进行自定义…正确吗?是的,如果您需要自定义或不寻常的路由(或者如果您不想将资源设置为仅使用其中一个路由),继续创建一个自定义的。使用
:as
给它命名是个好主意,因为它会给你一个抽象的层次,而不必在你需要的地方硬编码(如果你想改变路线,这会帮你很多忙)。