在选择的Rails中设置提示值

时间:2016-01-05 10:08:22

标签: ruby-on-rails ruby ruby-on-rails-4

我在表单中有一个select下拉列表但是希望将提示值设置为" 0"

<%= f.select :image_size_id, options_for_select(@image_sizes.collect{ |i| [i.dimension] }), { prompt: "Please select a Print Size" }, id: 'image_size_select' %>

这会生成

<select id="image_size_select" name="cart_item[image_size_id]">
  <option value="">Please select a Print Size</option>
  <option value="1">10x8</option>
  <option value="2">A4</option>
  <option value="3">A3</option>
  <option value="4">A2</option>
</select>

使用jQuery我可以做到这一点

$(document).ready(function(){
  $('#image_size_select option[value=""]').val('0')
});

但我希望使用select helper来做到这一点。可以这样设置吗?

2 个答案:

答案 0 :(得分:2)

您需要将其添加到options_for_select使用的值数组中,而不是使用“prompt”选项,该选项始终设置空值。您还应该使每个子数组中的大小数组有两个元素:一个用于显示的文本,另一个用于值。

<% options = [["Please select a Print Size",0]] + @image_sizes.collect{ |i| [i.dimension, i.dimension] } %>
<%= f.select :image_size_id, options_for_select(options), id: 'image_size_select' %>

答案 1 :(得分:0)

您也可以试试这个。

<%= f.select :image_size_id, options_for_select([["Please select a Print Size", 0]] + @image_sizes.pluck(:dimension, :id)), {}, id: 'image_size_select' %>