Jam*_*sen 0 ruby validation ruby-on-rails word-count
我有一个Ruby-on-Rails模型:
class Candidate < ActiveRecord::Base
validates_presence_of :application_essay
validate :validate_length_of_application_essay
protected
def validate_length_of_application_essay
return if application_essay.blank? # don't add a second error message if they didn't fill it out
errors.add(:application_essay, :too_long), unless ...
end
end
Run Code Online (Sandbox Code Playgroud)
没有进入C,检查application_essay包含不超过500字的最快方法是什么?您可以假设大多数论文至少有200个单词,不可能超过5000个单词,并且是英文(或伪英语有时称为"business-ese").您也可以将任何您想要的内容归类为"单词",只要您的分类对于典型用户来说是显而易见的.(注意:这不是讨论什么是"典型用户":)的地方)
在Rails3中使用:tokenizerwith with lambda方法也可以.
validates_length_of :essay, :minimum => 100, :too_short => "Your essay must be at least 100 words."), :tokenizer => lambda {|str| str.scan(/\w+/) }
Run Code Online (Sandbox Code Playgroud)
它可能不是最快的,但肯定是最干净的方式.