J'ai une simple classe utilisateur avec la validation suivante de l'unicité du nom:Rails: en utilisant la validation pour le registre utilisateur/login
class User < ActiveRecord::Base
validates :name, :uniqueness => true,
Il fonctionne très bien lors de la création d'un nouvel utilisateur. Cependant, quand je vérifie le formulaire de connexion, l'utilisateur entre son nom, et le système dit qu'il est déjà pris, ce qui n'a aucun sens.
Je mis en œuvre une méthode valid_login?
séparée, mais je ne peux pas tourner le chèque unqueness là:
def valid_login?
validates :name, :uniqueness => false # doesn't work
end
Ceci est le code de mon contrôleur:
def login
return unless request.post?
@user = User.new(params[:user])
if @user.valid_login?
# Redirect to user's page
end
end
J'utilise ma propre authentification système qui est assez simple: je stocke le hash de l'ID utilisateur + mot de passe dans les cookies.
Comment puis-je désactiver certaines validations lorsque je n'en ai pas besoin?
Ce n'est pas le comportement attendu. À quoi ressemble votre contrôleur de connexion? –
Utilisez-vous également un gem pour gérer les connexions/sessions? authentification reposante, concevoir, authlogic, ou avez-vous roulé à la main votre propre système de connexion? –
Jordan & Brett, j'ai mis à jour la question. – Alex