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 回答