2014-10-20 46 views
0

随着铁轨,我们可以把消息与验证"format:", "inclusion:" "exclusion:"...rails验证:未通过时的消息?

但我怎么能写一个全局消息错误时,验证未通过?

":message" does't works in validates hash key.

+0

不清楚你在问什么。如果您想将模型中的验证错误传达给您的前端,您需要通过在视图中渲染某些东西来实现这一点。 – meagar 2014-10-20 01:21:58

+0

我想添加一个引发错误消息,如:format:{with:foo,message:bar},但我希望此消息在验证未通过时显示,不仅仅因为某种原因(格式,包含或其他)。 – Matrix 2014-10-20 01:24:42

+0

使用'if :: custom_method' – Richlewis 2014-10-20 01:32:41

回答

0

这是由导轨提供的format验证器的范围之外。要做到这一点,你可以write your own custom validator符合目的,或者内嵌一种验证方法,如下所示:

class MyModel < ActiveRecord::Base 
    validates :correct_format? 

    def correct_format? 
    errors.add(:some_attribute, 'Generic message') unless some_attribute =~ /[a-z]/ 
    end 
end 
+0

是的,但如果我想在同一时间使用“存在”或“格式”? :s – Matrix 2014-10-20 10:57:39

+0

当您检查非空正则表达式时,存在性已经过验证。无论如何,你可以添加你想要的复杂方法,包括验证多个条件。 – coreyward 2014-10-20 15:04:17