【发布时间】:2013-05-25 05:50:50
【问题描述】:
我正在使用 Rocket_Pants gem 为我现有的 Rails 应用程序提供 API 访问。我有两个同名但存储在不同位置的控制器:
我将处理 HTTP 请求的控制器存储在 app/controllers 中,将处理 API 调用的控制器存储在 app/controllers 的子目录 API 中。
我的路线中有以下内容:
# HTTP routing
resources :posts do
collection do
get 'search'
end
end
# API routing
api :version => 1 do
resources :posts, :only => [:index, :show]
resources :posts do
collection do
get 'search'
end
end
end
但是,当我rake routes 时,我得到了:
GET /:version/posts/search(.:format) posts#search {:version=>/(1)/, :format=>"json"}
GET /:version/posts(.:format) posts#index {:version=>/(1)/, :format=>"json"}
GET /:version/posts/:id(.:format) posts#show {:version=>/(1)/, :format=>"json"}
这意味着我的 API 路由实际上是指向 http 控制器而不是 API 控制器。如何将我的 API 路由指向 API/posts#search?
【问题讨论】:
标签: ruby-on-rails api rails-routing