маршрут к вложенному пространству имен идет на неправильный контроллер
Используя Rails 3.0.7, я создаю API для нашего приложения, и у меня есть такая настройка:
routes.rb
<code> namespace :api do namespace :v1 do match "connect" => "users#login", :via => :post match "disconnect" => "users#logout", :via => :post resources :users match "users/:id/foos" => "foos#list", :via => :get match "users/:id" => "users#update", :via => :put match "foos/:id/bars" => "bars#list_by_foo", :via => :get match "foos/:id" => "foos#show", :via => :get, :constraints => { :id => /\d+/ } match "bars/:id" => "bars#show", :via => :get end end # other routes here e.g. match "users/find" => "users#find_by_name", :via => :get match "users" => "users#create", :via => :post </code>
И тогда у меня есть мой регулярныйapp/controllers/application_controller.rb
а такжеapp/controllers/users_controller.rb
файлы, а также мойapp/controllers/api/v1/application_controller.rb
а такжеapp/controllers/api/v1/users_controller.rb
файлы, которые определены следующим образом:
<code>class Api::V1::ApplicationController < ApplicationController before_filter :verify_access def verify_access # some code here end end class Api::V1::UsersController < Api::V1::ApplicationController skip_before_filter, :except => [:show, :update, :delete] end </code>
И раньше казалось, что все работает правильно, пока я не переопределил метод, который используется как UsersController, так и Api :: V1 :: UsersController - и теперь кажется, что все указывает на UsersController, хотя я и получаю доступ через api / v1 / маршрут пользователей.
Я в своем уме, пытаясь понять это. Какие-либо предложения? Благодарю. PS - не стесняйтесь комментировать любые условные обозначения, которые я игнорирую, что я не должен быть, или другие вещи, которые я мог испортить :)