1

我有一个选择菜单,就像这样

<%= f.select(:size, options_for_select(@sizes_availiable), :prompt => "Select Size") %>

提示“选择尺寸”。问题是,用户可以选择“选择尺寸”,它仍然允许提交表单。鉴于所有大小也是字符串,我如何禁止用户选择它作为值?

4

3 回答 3

4

您可以做几件事:

# as suggested, use :include_blank
f.select :size, options_for_select(@sizes_availiable), include_blank: "Select Size"
# wihch creates an 'option' tag with no value and 'Select Size' text

# or/and add a validation
validates :size, presence: true
validates :size, numericality: true       # or
validates :size, format: { with: /\d+/ }  #

但是,您应该始终包含验证以防止恶意用户操纵表单并提交随机内容。

于 2013-01-28T21:01:29.333 回答
3

使用include_blank而不是prompt.

 <%= f.select(:size, options_for_select(@sizes_availiable), {:include_blank => "Select Size"}) %>

比你可以size在你的模型中验证。

validates :size,   :presence => true
于 2013-01-28T19:46:54.747 回答
2

使用:禁用

<%= f.select(:size, options_for_select(@sizes_availiable), :prompt => "Select Size", :disabled => 'Select Size') %>

参考:

http://zittlau.ca/ruby-on-rails-disabling-a-select-tag-using-the-select-helper/

于 2013-01-28T19:44:08.200 回答