自定义Rails验证(似乎不起作用)

时间:2010-06-07 13:56:51

标签: ruby-on-rails ruby validation

嘿伙计们我有以下帐户模型

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,但是我似乎很难将这些代码转换为实际验证,任何帮助都会非常感激。谢谢:))

当我的防火墙问我终端是否大声访问它时,它还至少连接到网站。

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

1 个答案:

答案 0 :(得分:2)

我不知道它是否解决了你的问题,但你的'退货声明'应该在之后 行

   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