verschachtelte Namespace-Route geht an falschen Controller
Mit Rails 3.0.7 erstelle ich eine API für unsere App und habe folgendes Setup:
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>
Und dann habe ich meine Stammgästeapp/controllers/application_controller.rb
undapp/controllers/users_controller.rb
Dateien sowie meineapp/controllers/api/v1/application_controller.rb
undapp/controllers/api/v1/users_controller.rb
Dateien, die wie folgt definiert sind:
<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>
Und bevor alles richtig zu funktionieren schien, habe ich eine Methode überschrieben, die sowohl von UsersController als auch von Api :: V1 :: UsersController gemeinsam genutzt wird - und jetzt scheint alles auf UsersController zu zeigen, obwohl ich über die API / v1 auf sie zugreife / benutzer route.
Ich bin am Ende meines Witzes, um es herauszufinden. Irgendwelche Vorschläge? Vielen Dank. PS - zögern Sie nicht, mit irgendwelchen Konventionen zu kommentieren, die ich ignoriere, dass ich nicht sein sollte, oder mit anderen Dingen, die ich durcheinander gebracht haben könnte :)