2011-08-02 5 views
1

Je souhaite utiliser token_authenticatable dans mon application (à l'aide de Devise).RoutingError Constante non initialisée

En utilisant this answer J'ai ajouté class Users::SessionsController dans le fichier app/controllers/users_sessions_controller.rb (l'emplacement du fichier est-il correct?).

Pour générer authentication_token dans la base de données, j'ai ajouté la ligne current_user.reset_authentication_token! comme quatrième ligne de la méthode create. Utilisation de la section «Configuration des contrôleurs» de devise docimentation J'ai ajouté la ligne devise_for :users, :controllers => {:sessions => "users/sessions"} à mes itinéraires. J'ai également un fichier app/views/users/session/new.html.erb. Maintenant, lorsque j'essaie de me connecter ou de me déconnecter dans le navigateur, j'obtiens Routing Error uninitialized constant Users.

Je n'ai aucune idée de ce qui se passe. Je pense que j'ai mal nommé la classe du contrôleur, ou je l'ai mal placée, mais je ne sais pas avec certitude.

Répondre

3

Si vous voulez que votre contrôleur nommé Users::SessionsController alors il faut être en app/controllers/users/sessions_controller.rb

Si vous ne voulez pas des dossiers imbriqués pour vos contrôleurs, vous pouvez aussi faire

class UserSessionsController 

situé au niveau app/controllers/user_sessions_controller.rb avec les routes étant: devise_for :users, :controllers => {:sessions => "user_sessions"}

+0

Oui, exactement! Je l'ai compris hier, mais votre réponse est correcte et utile. Merci pour l'explication :) – Mateusz

+0

Deux ans plus tard, vous venez de faire ma nuit un peu moins effrayant! :) – sebkkom