Ruby on rails Rails 4.0 config/routes.rb需要:http://localhost/api/v1/:controller/:id

Ruby on rails Rails 4.0 config/routes.rb需要:http://localhost/api/v1/:controller/:id,ruby-on-rails,routing,ruby-on-rails-4,Ruby On Rails,Routing,Ruby On Rails 4,我使用的是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 而且我也找不出正确的路线 我尝试了几种变体: namespace :api do namespace :v1 do match ':controller(

我使用的是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
而且我也找不出正确的路线

我尝试了几种变体:

namespace :api do
  namespace :v1 do
    match ':controller(/:action(/:id))', via: [:get, :put, :post, :patch, :delete]
  end
end
导致错误:“命名空间块中不允许使用控制器段”

结果出错:“自动加载常量ApiController时检测到循环依赖项”

这就是我希望URL的外观:

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

路由通常不会以控制器名作为参数来完成——也许可以,但我真的不确定。我会尝试:


你想让url看起来像什么?@dax发现了一个问题,我已经更新了它-我正在尝试遵循一个指南,建议使用HTTP动词的方式,并使用动词来描述必要的动作,而不是使用动作。这本指南是用…的方式写的。。。?您可以使用“http谓词”,但只有在创建特定操作时才需要它们-
resources:x
使用给定模型的所有操作创建所有资源。掌心。我看不到森林中的树木。它发生了:)如果有帮助,请检查我的答案,以便将问题从
未回答队列中删除
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
namespace :api do
  namespace :v1 do
    resources :photos, :puppies, :socks, :bits_of_string
  end
end