2010-10-13 2 views
1

J'essaye d'écrire un test unitaire pour un modèle d'utilisateur dans Ruby on Rails. J'utilise authlogic et je dois vérifier que les attributs first_name et last_name des modèles d'utilisateurs ne sont pas les mêmes lorsque l'utilisateur s'enregistre.Valider le contenu des attributs pour qu'il ne soit pas le même

Ceci est mon modèle d'utilisateur:

class User < ActiveRecord::Base 
    acts_as_authentic do |c| 
    c.login_field= :username 
    end 
has_many :memberships, :class_name => "Project::Membership" 
    has_many :projects, :through => :memberships 
    has_one :profile 

    validates :email, :presence => true, :uniqueness => true 
    validates :username, :presence => true, :uniqueness => true 
    validates :first_name,:presence => true 
    validates:last_name, :presence => true 
    validates :title, :presence => true 
    validates :password, :presence => true 
    validates :password_confirmation, :presence => true 
    validates :gender, :presence => true 
    # Custom validator 
    validates :first_name, :last_name, :different_names => true 

Comme vous pouvez le voir, j'ai essayé de créer un validateur personnalisé la création d'un nouveau fichier dans /lib/different_names_validator.rb avec une classe appelée DifferntNamesValidator, mais n'a pas pu l'obtenir, car j'ai l'erreur suivante: Validator inconnu: 'different_names' (ArgumentError)

Merci d'avance!

Répondre

1

Hi Essayez d'inclure ce module dans votre modèle

+0

Quel module? Comment puis-je le faire? – noloman

+1

Je suppose qu'à l'intérieur de different_names_validator.rb vous avez défini le module (ou la classe) DifferentNamesValidator alors essayez d'ajouter 'include DifferentNamesValidator' dans votre modèle – Bohdan

+1

http://stackoverflow.com/questions/1073076/rails-lib-modules-et celui-ci peut être utile – Bohdan

Questions connexes