Je lisais des rails et des tutoriels ruby et je commençais tout juste à réaliser mon premier projet. Tout se passe bien mais j'ai un problème pour afficher les erreurs de validation pour les nouveaux utilisateurs. Ceci est mon code du contrôleur:Impossible de montrer les erreurs de validation sur les rails
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to ''
else
redirect_to '/signup'
end
end
private
def user_params
params.require(:user).permit(:name, :lastname, :nickname, :email, :password)
end
end
Et voici ma forme. J'omets toutes les entrées mais le surnom, parce que je suis en train de tester la validation.
<%= form_for(@user) do |f| %>
<div class='form-group'>
<%= f.text_field :nickname, :placeholder => "User name", :class => "form-control", :required => true, :minlength => "2", :maxlength => "24" %>
<div class="text-danger">
<%= @user.errors[:nickname][0] %>
</div>
</div>
<% end %>
je montre que la première erreur liée à voir si elle fonctionne, et éviter tout Ifs qui me font douter si cela fonctionne ou non. La validation de la classe est:
class User < ApplicationRecord
has_many :books
has_secure_password
validates :nickname, uniqueness: true
end
Lorsque je crée un nouvel utilisateur par la console et essayer de l'enregistrer avec le même surnom que l'autre, il sauver coutume, si la validation fonctionne très bien. Mais aucune erreur n'est affichée dans la vue, cela revient simplement au formulaire d'inscription et c'est tout. J'utilise ruby 2.2.6 et rails 5.0.1. Si quelque chose me manque, faites-le moi savoir.
Merci beaucoup, Il fonctionne maintenant. –
@FranciscoRupto vous accueillir. Si ma réponse ne vous a pas aidé, n'oubliez pas de la marquer comme acceptée en cliquant sur la coche à côté de la réponse pour passer du creux au vert –
Bien que cela fonctionne parfaitement, j'ai un problème mineur. Lorsque la validation ne passe pas et que #new affiche les erreurs, l'URL affiche "website.com/user". Parce que l'action d'index n'existe pas, si vous rechargez il ne peut pas trouver la page. Comment pourrais-je changer l'URL affichée sur la barre d'adresse? –