2016-03-14 130 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