我有一个选择菜单,如此
<%= f.select(:size, options_for_select(@sizes_availiable), :prompt => "Select Size") %>
提示“选择尺寸”。问题是,用户可以选择“选择大小”,它仍然允许提交表单。如果所有尺寸都是字符串,我如何禁止用户选择该值?
答案 0 :(得分: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+/ } #
但是,您应该始终包含验证,以防止恶意用户操纵表单并提交随机内容。
答案 1 :(得分:3)
使用include_blank
代替prompt
。
<%= f.select(:size, options_for_select(@sizes_availiable), {:include_blank => "Select Size"}) %>
您可以验证模型中的size
。
validates :size, :presence => true
答案 2 :(得分: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/