Существует очень простой способ сделать это благодаря опции :tokenizer
. В этом примере поле сводной информации в моей модели ограничено максимум 250 словами.
validates :summary, :presence => true, :length => {
:maximum => 250,
:tokenizer => lambda { |str| str.scan(/\w+/) },
:too_long => "Please limit your summary to %{count} words"
}
В этом случае токенизатор разбивает строку на слова.