2014-10-20 91 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