Page d'insciption qui ne fonctionne pas

Par TheYoungGeek43, il y a 9 ans


Bonjour,

Je fait un clone de twitter pas avec les même design mais le même principe c'est juste pour m'améliorer sauf que pour que les gens ce créer un compte j'ai un problème

Ce que je fais

Je veux que au début du site il y ai un bouton s'enregistrer que l'on clique ça nous ouvre une nouvelle page avec le formulaire d'inscription pour faire l'enregistrement j'ai suivit le model de la connection

Ma fonction register dans mon controller

def register @pseudo_use = User.where(pseudo: params[:pseudo]) if User.where(pseudo: params[:pseudo]).first flash[:error] = "Le pseudonyme et déjà pris" redirect_to "/users/register" else User.create(pseudo: params[:pseudo], password: params[:password], role: "utilisateur") flash[:info] = "Vous ête bien enregistrer. Merci de bien vouloir vous connecter" redirect_to "/" end end

Mon html du register

<div class="row"> <div class="col s12"> <h1>S'enregistrer</h1> </div> </div> <%= form_tag "/users/register", method: "post" do %> <div class="row"> <div class="input-field col s6"> <input type="text" name="pseudo"> <label for="pseudo">Pseudonyme</label> </div> <div class="input-field col s6"> <input type="password" name="password"> <label for="password">Mot de passe</label> </div> <div class="col s8"> <button class="btn waves-effect waves-light" type="submit">S'enregistrer <i class="material-icons right">send</i> </button> </div> <div class="col s4"> <h6>Déjà un compte ? <a href="/users/login">connectez-vous</a></h6> </div> </div> <% end %>

Ce que j'obtiens

J'obtien pas d'erreur c'est déjà assez cool :) mais quand je clique sur le boutton s'enregistrer il ne vas pas sur la page il s'enregistre direct avec les params nil donc je voudrais savoir comment faire pour qu'il m'affiche la page pour modifier les params grâce a mon jolie tableau :)

PS : J'utilise materialize css

Merci d'avance pour votre aide

9 réponses

Huggy, il y a 9 ans

"Vous ête bien enregistrer. Merci de bien vouloir vous connecter"
try again

bon OK; je sais l'orthographe c'est dépassé, SMS toussa ...
mais quand même :(

TheYoungGeek43, il y a 9 ans

Je suis désoler mais je vérifi mon orthographe que si c'est des projet sérieux et cela ne répond pas à ma question ;)

PS: toussa s'écrit en réaliter tous ça :p

Bien évidement mon message n'a rien de méchant j'ai un humour juste pas comme les autre ;)

Kareylo, il y a 9 ans

C'est logique, tu ne vérifie pas s'il y a des params dans ta requête POST.

PS : Tout ça.

TheYoungGeek43, il y a 9 ans

Salut mais quesque je suis bête défois c'est totalement logique et j'y ai pas pensée :/ merci bien :)

Kareylo, il y a 9 ans

Ca arrive à tout le monde.
Oublie pas de passer le poste en résolu si ton problème est réglé.

TheYoungGeek43, il y a 9 ans

J'ai beau lui faire une condition comme quoi les params son nul mais il veux toujours pas ça fait la même chose j'ai l'impression que mon site s'en fou de ma condition la condition je lui ai dit si params est different de nul alors tu execute le code sauf que même si params est nul il execute le code
Je met mon code car j'ai du me tromper :p

if !params[:nil] if User.where(pseudo: params[:pseudo]).first flash[:error] = "Le pseudonyme et déjà pris" redirect_to "/users/register" else User.create(pseudo: params[:pseudo], password: params[:password], role: "utilisateur") flash[:info] = "Vous ête bien enregistrer. Merci de bien vouloir vous connecter" redirect_to "/" end end
Kareylo, il y a 9 ans

Je m'y connais pas plus que ça en Ruby, mais de ce que je comprends, tu vérifies s'il n'y a pas de clef nil dans params.

Après une micro rechercher, je suis tombé sur ce cas :

if (params.has_key?(:pseudo) && params.has_key?(:password)) if User.where(pseudo: params[:pseudo]).first flash[:error] = "Le pseudonyme et déjà pris" redirect_to "/users/register" else User.create(pseudo: params[:pseudo], password: params[:password], role: "utilisateur") flash[:info] = "Vous ête bien enregistrer. Merci de bien vouloir vous connecter" redirect_to "/" end end

Ou encore

if !params.empty? if User.where(pseudo: params[:pseudo]).first flash[:error] = "Le pseudonyme et déjà pris" redirect_to "/users/register" else User.create(pseudo: params[:pseudo], password: params[:password], role: "utilisateur") flash[:info] = "Vous ête bien enregistrer. Merci de bien vouloir vous connecter" redirect_to "/" end end
TheYoungGeek43, il y a 9 ans

Merci ça fonctionne :D

Kareylo, il y a 9 ans

J'ai modifié pour ajouter une autre version, qui devrait être "mieux"