2012-12-25 3 views
0

s'il vous plaît me aider J'ai créé un contrôleur 'users' en vue 'login' avec un formulaire pour identifier les utilisateurs, j'ai changé le routes.rb changer get user/login-post user/loginComment utiliser « post » dans routes.rb

maintenant, quand je aller à localhost:3000/users/login apparaît:

Routing Error 

No route matches [GET] "https://stackoverflow.com/users/login" 
Try running rake routes for more information on available routes. 

s'il vous plaît ce qui devrait à faire pour fonctionne cette page, ce problème est parce que je l'ai changé « get » pour « post » dans les routeurs, il y a quelque chose de plus que je devrais ajouter?

+0

Ce billet correspond parfaitement à ce que nous attendons chez SO. N'abusez pas de votre privilège et de vos responsabilités. – HenryRootTwo

Répondre

1

Lorsque vous venez d'accéder à cette URL dans votre navigateur, le type de demande est GET - mais, comme vous l'avez dit, il n'y a pas d'itinéraire pour cette demande maintenant. Route sera utile lorsque vous soumettez réellement un formulaire sur cette page - avec une soumission simple (spécifiez l'attribut method comme POST) ou une requête AJAX.

+0

merci, mais que dois-je faire? S'il vous plaît – dexter00x

+0

Cela ne dépend pas de ce que vous _want_ faire? Une manière possible consiste à créer une route distincte pour l'action GET. – raina77ow

+0

à un formulaire utilisé pour vous connecter ou vous enregistrer, devrais-je utiliser 'get' ou 'post'? S'il vous plaît – dexter00x

0

Vous pouvez utiliser les deux en routes.rb:

get user/login 
post user/login 

Cela signifie que le contrôleur reconnaîtra les demandes faites par les deux méthodes. C'est à la logique de votre contrôleur de le trier. Le get serait généralement utilisé pour rendre le formulaire de connexion; Le post recevrait le nom d'utilisateur et le mot de passe de l'utilisateur, l'authentifierait, puis redirigerait vers une page pour une connexion réussie (ou sans succès, si nécessaire). Je peux susciter quelques controverses en disant cela, mais si vous êtes un débutant et que vous cherchez à faire un site web "sérieux" avec l'authentification de l'utilisateur, vous ne voudrez peut-être rien laisser au hasard et utiliser plutôt une gemme comme concevoir (https://github.com/plataformatec/devise) pour le faire pour vous. Certains diront qu'il est préférable d'apprendre à le faire à partir de zéro, et il y a aussi un sens à cela.