我目前在我的routes.rb
:
namespace :api
namespace :v1
namespace :me
# ...
resources :offers do
resources :state, only: %i(index)
end
end
end
end
这给了我这条路线:
GET v1/me/offers/:offer_id/state(.:format)
api/v1/me/state#index
但我想要的路线就是这个:
GET v1/me/offers/:offer_id/state(.:format)
api/v1/me/offers/state#index
简单地说,我希望能够将state_controller.rb
放在offers
文件夹中,而无需更改访问它的路径。
我怎样才能做到这一点?
答案 0 :(得分:1)
您应该明确定义资源的控制器:
resources :state, controller: 'offers/state'
这会将请求路由到app/controllers/api/v1/me/offers/state_controller.rb
。
答案 1 :(得分:1)
我找到了更好的方法:使用module
resources :offers, module: :offers do
resources :state, only: %i(index)
end
答案 2 :(得分:0)
namespace :api
namespace :v1
namespace :me
# ...
resources :offers do
namespace :offers, path: "" do
resources :state, only: %i(index)
end
end
end
end
end