2011-02-16 56 views
2

沒有進入所有的JavaScript的文本框,我想下面的驗證:Rails的自定義驗證錯誤信息

validates_length_of :brief_description, 
    :maximum=>250, 
    :message => "Brief is #{self.brief_description.length} long (max is 250)" 

但該消息在self.brief_description參考不起作用。什麼是最好的方法來做到這一點?

我試圖 #{PARAMS [:brief_description]。長度} 爲好,但該模型不知道PARAMS什麼...

回答

1

我可能是錯的,但我認爲你可以嘗試封閉字符串用單引號括起來,並且它可能推遲計算字符串直到運行時。

的短,你可以寫一個自定義的驗證(即不使用validates_length_of宏)和做類似:

def validate_brief_description 
    errors.add :brief_description, "Brief is #{brief_description.length} long (max is 250)" if brief_description.length > 250 
end 
+0

單引號防止#{}被評估,但自定義驗證確實做到了。謝謝! – pedstrom 2011-02-17 03:08:43