2

我尝试从仅限于 1 个字的博客类别添加验证。

但我试试这个length: { maximum: 1 }

我不工作。是否仅验证一个单词而不是唯一性?

谢谢您的回答

4

3 回答 3

8

您可以进行自定义验证:

validates :category, uniqueness: true
validate :category_in_1_word

private

def category_in_1_word
  if category.to_s.squish.split.size != 1
    errors.add(:category, 'must be 1 word')
  end
end
于 2016-03-14T16:15:08.467 回答
5

你可以试试:

validates :category, :format => { :with => /^[A-Za-z]+$/, :message => "Must be single word" }
于 2016-03-14T16:19:30.693 回答
0

No Rails 没有您需要的验证,但您可以轻松创建自定义验证:

尝试这样的事情:

class Post < ActiveRecord::Base
  validate do
    if ... # any custom logic goes here
      errors.add :title, "is wrong"
    end
  end
end
于 2016-03-14T16:13:36.257 回答