zagnieżdżona trasa nazw do niewłaściwego kontrolera
Korzystając z Rails 3.0.7, tworzę API dla naszej aplikacji i mam tę konfigurację:
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>
A potem mam regularneapp/controllers/application_controller.rb
iapp/controllers/users_controller.rb
pliki tak samo jak mojeapp/controllers/api/v1/application_controller.rb
iapp/controllers/api/v1/users_controller.rb
pliki zdefiniowane w następujący sposób:
<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>
I zanim wszystko wydawało się działać poprawnie, dopóki nie nadpisałem metody współdzielonej zarówno przez UsersController, jak i Api :: V1 :: UsersController - a teraz wydaje się, że wszystko wskazuje na UsersController, mimo że mam dostęp przez api / v1 / trasa użytkowników.
Jestem na końcu mojego dowcipu, próbując to rozgryźć. Jakieś sugestie? Dzięki. PS - nie krępuj się komentować konwencjami, które ignoruję, że nie powinienem być, lub innymi rzeczami, które mogłem zawalić :)