2013-03-18 112 views
0

在我的應用程序中,我要求用戶寫下他們的車牌沒有任何破折號。它只用於荷蘭的車牌,它總是由數字和字母組成,總長度爲6個字符。我的問題是:車牌輸入

如何確保輸入總是6位數字?

我有一個< p> -tag在_form.html.erb中聲明用戶應該只寫下他們的車牌而不用破折號,但這當然不是最好的辦法。

在我_form.html.erb我寫

<strong><%= f.label :license_plate, 'Kenteken' %></strong><br /> 
<%= f.text_field :license_plate %> 

我的模型包含行

validates :license_plate, :presence => true, :uniqueness => true, :length => {:minimum => 6, :maximum => 6} 

如果您需要更多的信息,我很高興地願意分享。提前致謝。

編輯: 我想從用戶輸入中刪除任何空格和破折號。我應該如何在代碼中編寫它?

+0

你想輸入限制在6個字符或剝離所輸入的值刪除空格,破折號等? – muttonlamb 2013-03-18 06:54:01

+0

sawa,我犯了一個錯誤,它應該是數字和字母,但我做了一個編輯。 – 2013-03-18 06:58:24

+0

muttonlamb,如果我可以刪除破折號,那麼最好的辦法是,如果用戶輸入ABC123或AB-C1-23,那麼這並不重要。 – 2013-03-18 06:59:19

回答

0

您可以使用before_validation回調刪除不想要的字符:

before_validation :clean_data 

def clean_data 
    self.license_plate = self.license_plate.gsub(/[ \-]/, '') unless self.license_plate.nil? 
end 
+0

非常感謝!這對我有效。 – 2013-03-19 10:46:07