要求用户选择值

时间:2013-01-28 19:39:44

标签: ruby-on-rails ruby

我有一个选择菜单,如此

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

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

3 个答案:

答案 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/

相关问题