2013-04-30 79 views
0

我在我的一个Rails模型中有一个简单的验证,但它似乎没有像我想要的那样触发一个错误。在自定义模型验证中没有触发的错误

before_save :check_future_date 

private 
    def check_future_date 
    puts "==============================================================" 
    puts self.article.date 
    puts Date.today 
    if self.article.date <= Date.today 
     puts "error!!!!!!!!!!!!!!!!!"   
     errors[:base] << "Sorry, you must post at least a day in advance" 
    end 
    end 

我知道逻辑被触发,因为在控制台中,我看到:

============================================================== 
2013-04-06 
2013-04-29 
error!!!!!!!!!!!!!!!!! 

然而,成绩仍然是保存,并没有显示任何错误消息。我也尝试过:

errors.add(:base, 'Sorry, you must post at least a day in advance') 

回答

1

您需要注册自定义验证方法,而不是执行before_save

变化

before_save :check_future_date 

validate :check_future_date