2010-06-07 4 views
0

Hey les gars Ive a obtenu le modèle suivant pour les comptesValidation Rails sur mesure (ne semble pas fonctionner)

require 'net/http' 
require 'uri' 
require 'date' 

class Account < ActiveRecord::Base 
validates_presence_of :username, :password, :on => :update 
validate :valid_expiry_date, :on => :update 

def valid_expiry_date 
    reply = Net::HTTP.get URI.parse("http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=getaccountdetails_v1&type=prem&login=" + username + "&password=" + password) 
    account = Time.at(reply[80..90].to_i) 

    if (Time.now + 2419200) <= account 
    return true  
    else 
    return false 
    errors.add_to_base("Sorry this account isnt valid") 
    end 
end 
end 

Je sais que le code fonctionne dans un fichier ruby.rb et retourne vrai ou faux, mais Il me semble que j'ai beaucoup de mal à traduire ce code en validation réelle, toute aide serait grandement appréciée. Merci :)

Il est également provocant au moins se connecter au site Web que mon pare-feu m'a demandé si le terminal était à haute voix pour y accéder.

En ce moment, non seulement il ne montre aucune erreur, mais il laisse passer et enregistre tout.

Répondre

2

Je ne sais pas résolu votre problème ou non, mais votre devrait être « déclaration de retour » après la ligne

errors.add_to_base("Sorry this account isnt valid") 

Modifier à et vérifier à nouveau

if (Time.now + 2419200) <= account 
    return true  
    else 
    errors.add_to_base("Sorry this account isnt valid") 
    return false 
    end 
+0

Remerciez-vous très beaucoup, ça fonctionne maintenant parfaitement. –

Questions connexes