Impossible de trouver un mappage pour le chemin "/ sessions / user"
Très frustrant pour les derniers jours.
J'ai une application rails avec Concevoir installé où j'ai généré un nouveau modèle d'Utilisateur et j'ai généré Concevoir des points de vue.
Ce qui se passe lorsque j'essaie de vous connecter en tant qu'utilisateur existant à droite lorsque je clique sur "se Connecter" après le remplissage de l'e-mail et le mot de passe champs:
AbstractController::ActionNotFound - Could not find devise mapping for path "/sessions/user".
This may happen for two reasons:
1) You forgot to wrap your route inside the scope block. For example:
devise_scope :user do
get "/some/route" => "some_devise_controller"
end
2) You are testing a Devise controller bypassing the router.
If so, you can explicitly tell Devise which mapping to use:
@request.env["devise.mapping"] = Devise.mappings[:user]
:
devise (3.2.4) app/controllers/devise_controller.rb:84:in `unknown_action!'
devise (3.2.4) app/controllers/devise_controller.rb:59:in `assert_is_devise_resource!'
devise (3.2.4) app/controllers/devise_controller.rb:97:in `require_no_authentication'
activesupport (4.0.4) lib/active_support/callbacks.rb:397:in `_run__1955514966561508052__process_action__callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.4) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.0.4) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.4) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.4) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.4) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.4) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:674:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:35:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/flash.rb:241:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/cookies.rb:486:in `call'
activerecord (4.0.4) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.4) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
activerecord (4.0.4) lib/active_record/migration.rb:373:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.4) lib/active_support/callbacks.rb:373:in `_run__2142997860843545523__call__callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.4) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
better_errors (1.1.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
better_errors (1.1.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
better_errors (1.1.0) lib/better_errors/middleware.rb:56:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.4) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.4) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.0.4) lib/rails/rack/logger.rb:20:in `call'
quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
actionpack (4.0.4) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.4) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.0.4) lib/rails/engine.rb:511:in `call'
railties (4.0.4) lib/rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
/Users/AaronWilliamson/.rubies/ruby-2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/AaronWilliamson/.rubies/ruby-2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/AaronWilliamson/.rubies/ruby-2.1.0/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
La chose est, quand je m'inscrire en tant que nouvel utilisateur, il fonctionne très bien. Je peux remplir les champs appropriés, cliquez sur "Sign up" et il m'avise que j'ai réussi à ouvrir une session et me redirige vers l'URL de la racine montrant l'utilisateur connecté. L'erreur se produit uniquement lorsque j'essaie de me connecter.
Voici mon parcours:
Ripelist::Application.routes.draw do
devise_for :users, path_names: { sign_in: 'login', sign_out: 'logout', sign_up: 'signup' }
root to: 'listings#index'
match '/sessions/user', to: 'devise/sessions#create', via: :post
resources :users
resources :listings
resources :categories
resources :sessions
end
Quelqu'un peut-il aider?
source d'informationauteur Aaron
Vous devez vous connecter pour publier un commentaire.
dans vos itinéraires.rb fichier, essayez d'emballer vos itinéraires à l'intérieur de la portée de bloquer le message d'erreur indique.
Voici un exemple:
Cela vous donnera joliment nommé routes.
Et par la manière, si vous êtes à l'aide de Rails 4, se débarrasser de la méthode match. vous devez spécifier le verbe HTTP.
DÉSUET réponse:
(Ci-dessous, l'ancienne version obsolète du code de référence. Utilisez le code ci-dessus.)
ET
Être prudent si vous nef des espaces de routes, de déclarer la devise_scope un peu différent:
Cette erreur (
AbstractController::ActionNotFound - Could not find devise mapping for path
) peuvent survenir sidevise_scope
est passé d'un pluriel portée au lieu d'une seule portée.La
devise_for
méthode prend une forme plurielle de modèle portée (c'est à dire :les utilisateurs) alors que ledevise_scope
prend la forme singulière (c'est à dire:user
).De le concevoir de la documentation (http://www.rubydoc.info/github/plataformatec/devise/ActionDispatch%2FRouting%2FMapper%3Adevise_scope):
D'erreur vous dit:
avez-vous essayé?