我正在使用Rails 4.0,我正试图让以下路由起作用:
class Api::V1::MyController
def get # maps to http GET
end
def post # maps to http POST
end
... Same for PATCH PUT DELETE
end
我无法弄清楚正确的路线.rb。
我尝试了几种变体:
namespace :api do
namespace :v1 do
match ':controller(/:action(/:id))', via: [:get, :put, :post, :patch, :delete]
end
end
导致错误:“命名空间块中不允许使用控制器段”
和
match '/api/v1/:controller(/:action(/:id))', via: [:get, :put, :post, :patch, :delete]
错误结果:“在自动加载常量ApiController时检测到循环依赖”
这就是我想要的网址:
http://www.localhost.com/api/v1/my_controller/1234
or eventually:
http://www.localhost.com/api/v1/photos/1234
http://www.localhost.com/api/v1/users1234
http://www.localhost.com/api/v1/albums/1234
http://www.localhost.com/api/v1/puppies/1234
答案 0 :(得分:1)
路由通常不会将控制器名称作为参数完成 - 也许它们可以,但我真的不确定。我试试this:
namespace :api do
namespace :v1 do
resources :photos, :puppies, :socks, :bits_of_string
end
end