Note that there are some explanatory texts on larger screens.

plurals
  1. PO"No route matches" : Nightmare with routing rails namespace
    text
    copied!<p>I'm geting crazy with a namespace URL that leads to incorrect action 'show' instead of 'new'.</p> <p>When I'm using this URL : <strong>admin/admin_utilisateurs/new</strong> I get this <strong>error</strong> :</p> <pre><code>Routing Error No route matches {:action=&gt;"show", :controller=&gt;"admin/admin_utilisateurs"} Try running rake routes for more information on available routes. </code></pre> <p>This is the <strong>link_to</strong> I'm using in my index page :</p> <pre><code>link_to 'Nouveau', new_admin_admin_utilisateur_path, :class =&gt; 'btn-text btn-dimensions btn-encrusted metal' </code></pre> <p>These are my <strong>rake routes</strong> :</p> <pre><code> root / welcome#index pub_responsables GET /catalogs/managers(.:format) pub_responsables#index POST /catalogs/managers(.:format) pub_responsables#create new_pub_responsable GET /catalogs/managers/new(.:format) pub_responsables#new edit_pub_responsable GET /catalogs/managers/:id/edit(.:format) pub_responsables#edit pub_responsable GET /catalogs/managers/:id(.:format) pub_responsables#show PUT /catalogs/managers/:id(.:format) pub_responsables#update DELETE /catalogs/managers/:id(.:format) pub_responsables#destroy new_admin_utilisateur_session GET /admin_utilisateurs/sign_in(.:format) devise/sessions#new admin_utilisateur_session POST /admin_utilisateurs/sign_in(.:format) devise/sessions#create destroy_admin_utilisateur_session DELETE /admin_utilisateurs/sign_out(.:format) devise/sessions#destroy admin_utilisateur_password POST /admin_utilisateurs/password(.:format) devise/passwords#create new_admin_utilisateur_password GET /admin_utilisateurs/password/new(.:format) devise/passwords#new edit_admin_utilisateur_password GET /admin_utilisateurs/password/edit(.:format) devise/passwords#edit PUT /admin_utilisateurs/password(.:format) devise/passwords#update cancel_admin_utilisateur_registration GET /admin_utilisateurs/cancel(.:format) admin_utilisateurs/registrations#cancel admin_utilisateur_registration POST /admin_utilisateurs(.:format) admin_utilisateurs/registrations#create new_admin_utilisateur_registration GET /admin_utilisateurs/sign_up(.:format) admin_utilisateurs/registrations#new edit_admin_utilisateur_registration GET /admin_utilisateurs/edit(.:format) admin_utilisateurs/registrations#edit PUT /admin_utilisateurs(.:format) admin_utilisateurs/registrations#update DELETE /admin_utilisateurs(.:format) admin_utilisateurs/registrations#destroy admin_utilisateur_confirmation POST /admin_utilisateurs/confirmation(.:format) devise/confirmations#create new_admin_utilisateur_confirmation GET /admin_utilisateurs/confirmation/new(.:format) devise/confirmations#new GET /admin_utilisateurs/confirmation(.:format) devise/confirmations#show admin_utilisateur_unlock POST /admin_utilisateurs/unlock(.:format) devise/unlocks#create new_admin_utilisateur_unlock GET /admin_utilisateurs/unlock/new(.:format) devise/unlocks#new GET /admin_utilisateurs/unlock(.:format) devise/unlocks#show admin_admin_utilisateurs GET /admin/admin_utilisateurs(.:format) admin/admin_utilisateurs#index POST /admin/admin_utilisateurs(.:format) admin/admin_utilisateurs#create new_admin_admin_utilisateur GET /admin/admin_utilisateurs/new(.:format) admin/admin_utilisateurs#new edit_admin_admin_utilisateur GET /admin/admin_utilisateurs/:id/edit(.:format) admin/admin_utilisateurs#edit admin_admin_utilisateur GET /admin/admin_utilisateurs/:id(.:format) admin/admin_utilisateurs#show PUT /admin/admin_utilisateurs/:id(.:format) admin/admin_utilisateurs#update DELETE /admin/admin_utilisateurs/:id(.:format) admin/admin_utilisateurs#destroy </code></pre> <p>For info, I'm using Devise on a users table which I called "admin_utilisateurs". Devise is working great with options : :database_authenticatable, :confirmable, :recoverable, :registerable, :trackable, :timeoutable, :validatable, :lockable</p> <p>The point is that I setup another controller for admin purpose on the admin_utilisateurs table.</p> <p>So here it is my <strong>config/routes.rb</strong></p> <pre><code> root :to =&gt; 'welcome#index' resources :pub_responsables, :path =&gt;'/catalogs/managers' devise_for :admin_utilisateurs, :controllers =&gt; {:registrations =&gt; 'admin_utilisateurs/registrations'} namespace :admin do resources :admin_utilisateurs end </code></pre> <p>So my admin controller is located in <strong>app/controllers/admin/admin_utilisateurs_controller.rb</strong></p> <p>Here is the action of my <strong>'new'</strong> controller's action :</p> <pre><code>class Admin::AdminUtilisateursController &lt; ApplicationController before_filter :authenticate_admin_utilisateur! ... def new @admin_utilisateur = AdminUtilisateur.new respond_with(@admin_utilisateur) end ... end </code></pre> <p>The view for that controller are located in app/view/admin/admin_utilisateurs/</p> <p>But the issue is really connected to the route because the other path for 'show', 'edit' and 'update' are working properly.</p> <p>And if I delete my controller app/controllers/admin/admin_utilisateurs_controller.rb, Rails is not complaining about missing controller, she's still complaining about the "no route for show action".</p> <p>I'm really lost. Could anyone advise please ? Thanks in advance</p> <p><strong>===== UPDATE 1 =====</strong></p> <p>Here it is the log related to my URL request :</p> <pre><code>Started GET "/admin/admin_utilisateurs/new" for 127.0.0.1 at 2012-10-25 12:55:05 +0200 Processing by Admin::AdminUtilisateursController#new as HTML Rendered shared/_main_title.html.haml (0.4ms) Rendered admin/admin_utilisateurs/_form.html.haml (17.2ms) Rendered admin/admin_utilisateurs/new.html.haml within layouts/application (31.7ms) Completed 500 Internal Server Error in 45ms ActionController::RoutingError (No route matches {:action=&gt;"show", :controller=&gt;"admin/admin_utilisateurs"}): app/views/admin/admin_utilisateurs/_form.html.haml:1:in `_app_views_admin_admin_utilisateurs__form_html_haml___780348754_85631840' app/views/admin/admin_utilisateurs/new.html.haml:9:in `_app_views_admin_admin_utilisateurs_new_html_haml__296364877_85537950' app/controllers/admin/admin_utilisateurs_controller.rb:51:in `new' </code></pre> <p>It seems that it is properly routed but then there is a problem in the view.</p> <p>I retried to remove the controller file admin_utilisateurs_controller.rb <strong>but this time restart my web server</strong> (sudo service apache2 restart) and the error was different. I got this time a "Routing error uninitialized constant Admin::AdminUtilisateursController".</p> <p>So this confrim there is an issue in my view... digging deeper...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload