2016-03-14 99 views
2

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

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

我不起作用。是否有验证只验证一个字而不是唯一性?

谢谢你的答案

回答

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 
0

没有Rails不有你需要验证,但你可以很容易地创建一个自定义的:

尝试是这样的:

class Post < ActiveRecord::Base 
    validate do 
    if ... # any custom logic goes here 
     errors.add :title, "is wrong" 
    end 
    end 
end 
5

你可以试试:

validates :category, :format => { :with => /^[A-Za-z]+$/, :message => "Must be single word" } 
+0

最聪明的解决方案!我只会使用这个正则表达式'^ \ S * $' – egze