制作自定义路线

时间:2013-02-27 03:09:51

标签: ruby-on-rails routes ruby-on-rails-3.2

目标是为GET,REST API创建这样的URL:

/manager/someID/report
example: /manager/2/report

如果这样做,我可以让它在rake路线中显示:

get 'manager/:id/report', to: 'report#show'

但在我读到的一些博客中,这就是不熟练的开发人员编写路线的方式!并且看起来更好的方法是使用“嵌套资源”,所以我正在敲桌子以使嵌套资源以相同的方式工作......但没有成功

这是我到目前为止所写的:

  resources :manager, only: [:show] do
    resources :report, only: [:show], controller: 'report' do
     member do
       ## WAT ?!
     end
    end
  end

1 个答案:

答案 0 :(得分:1)

首先,你可能想考虑阅读不同的博客,如果他们正在调用“不熟练”的路线。

你提出的建议实际上很好,因为它是一种非标准的RESTful路线,在某些情况下甚至可能更好。如果您想要一种替代方法,您可以选择不同的方法。我不认为任何一个比另一个更正确,但我更喜欢第一个因为它占用更少的垂直空间。

resources :manager, only: [:show] do
  get 'report' => 'report#show', on: :member
end

resources :manager, only: [:show] do
  member do
    get 'report' => 'report#show'
  end
end