我正在嘗試編寫一個自定義驗證器來檢查輸入到文本字段中的單詞數量。在Rails 3中編寫自定義驗證器
我試圖按照railscasts情節例如211 - http://railscasts.com/episodes/211-validations-in-rails-3
所以我做了一個文件/lib/word_limit_validator.rb在本教程中相同的代碼複製。我知道這段代碼不會計算單詞的數量,我只是想使用它,因爲我知道它應該如何表現。
class WordLimitValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
下面是我在驗證中使用的線:
validates :body, :presence => true,
:word_limit => true
當我試圖加載我得到了以下錯誤的形式:
Unknown validator: 'word_limit'
如何讓軌道識別我的驗證器?
系統規格: 的Mac OS 10.6.7 的Rails 3.0.4 紅寶石1.9.2p136
我用第二個選項,它的工作! – Cyrus 2011-05-16 23:31:00
是的,我應該說 - 第二個選擇是IMO最好的選擇。不確定Rails 3的「最佳實踐」是什麼。 – muffinista 2011-05-16 23:41:29