1

私のアプリケーションでは、ダッシュなしでナンバープレートを書き留めるようにユーザーに求めています。オランダのナンバープレートにのみ使用されます。ナンバープレートは、常に6文字の長さの数字と文字の組み合わせで構成されています。私の質問は:

入力が常に6桁の長さであることを確認するにはどうすればよいですか?

_form.html.erbに<p>タグがあり、ユーザーはダッシュなしでナンバープレートのみを書き留める必要があることを示していますが、もちろん、これは最善の方法ではありません。

私の_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}

さらに詳しい情報が必要な場合は、喜んで共有させていただきます。前もって感謝します。

編集:ユーザー入力から空白とダッシュを削除したいと思います。コードでどのように書くべきですか?

4

1 に答える 1

0

コールバックを使用before_validationして、不要な文字を削除できます。

before_validation :clean_data

def clean_data
  self.license_plate = self.license_plate.gsub(/[ \-]/, '') unless self.license_plate.nil?
end
于 2013-03-18T08:16:04.727 に答える