2012-06-27 41 views
2

您好我想驗證一個表單輸入,所以只需要1-9作爲輸入,如何才能實現這一目標Rails的比賽validates_format_of數字1-9

我有這個在我的模型,但只是不能似乎數字得到正確的匹配

validates_format_of:MyField的,:用=> ??????,:上=>:創建

回答

3

請看看這裏:http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of

validates :myfield, :inclusion => { :in => 1..9 } 

validates_inclusion_of :myfield, :in => 1..9 

編輯 - 我以爲myfield是一個integer,但如果你將它定義爲string你需要添加validates_numericality_of

validates_numericality_of :myfield, :only_integer => true 
validates_inclusion_of :myfield, :in => 1..9 
+0

我試過這個,但它仍然允許你輸入像3D這樣的東西,我需要確保沒有任何字母字符,並且它只是一個數字 –

+0

我將編輯我的答案... – gabrielhilal

1

validates_format_of :myfield, :with => /([^a-zA-Z][1-9]?)/, :on => :create

應該怎麼做,如果只是罰款您正在使用2.3.x

請注意,它在2.3.8之後被刪除

+0

我試過這個,但它仍然允許你輸入像3D這樣的東西,我需要確保沒有任何字母字符,而且它只是一個數字。任何幫助,將不勝感激 –

+0

@JonDay我已經更新了正則表達式,再試一次。現在無法測試,但Rubular獲得這樣的效果 –