2010-06-07 69 views
0

嗨香港专业教育学院得到了帐户以下型号自定义Rails的验证(似乎并不奏效)

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 

我知道代码工作在ruby.rb文件,但将返回true或false,我似乎很难将这些代码翻译成实际的验证,任何帮助都将不胜感激。谢谢:)

它也至少连接到网站,因为我的防火墙问我终端是否大声访问它。

目前,它不仅没有显示任何错误,而是实际上让任何东西通过并保存。

回答

2

我不知道它解决您的问题或没有,但你的“return语句”应该是 线

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

将其更改为后再次检查

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

感谢你非常很多,它现在工作完美。 – 2010-06-07 14:00:39