2009-12-13 10 views
-1

je suis en train de faire en sorte que le nom d'utilisateur est unique lors de l'enregistrement, mais je ne suis pas sûr de savoir comment faire cetteessayant de trouver les noms d'utilisateur en double dans Ruby

J'ai essayé:

validates_uniqueness_of :username 

mais cela ne fonctionne pas

il me donne cette erreur: méthode non définie de 'validates_uniqueness_of' pour #<UsersController:0x6c4fd2>

Toute aide s'il vous plaît?

Répondre

6

Vous n'avez pas indiqué où vous avez déclaré validates_uniqueness_of. C'est une méthode de classe mélangée dans ActiveRecord::Base, alors assurez-vous de le déclarer dans un modèle, pas dans un contrôleur ou ailleurs.

+0

mon mauvais. Merci beaucoup! – Lilz

1

validates_uniqueness_of devrait fonctionner, mais vous devez également ajouter un index unique à la colonne de la base de données afin d'éviter les conditions de concurrence. Cela peut se faire via la migration:

add_index :table_name, :column_name , :unique=> true 

Cochez l'option case_sensitive pour validates_uniqueness_of ainsi.

1

Ceci doit être placé dans l'utilisateur modèle pas le contrôleur.

Questions connexes