1

目标是为 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
4

1 回答 1

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
于 2013-02-27T03:45:15.493 回答