我正在尝试编写一个自定义验证器来检查输入到文本字段中的单词数量。在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