Ruby on rails rails-禁用选择标记

Ruby on rails rails-禁用选择标记,ruby-on-rails,form-helpers,Ruby On Rails,Form Helpers,我正在尝试禁用选择标记。填充我们的选项不是数据库属性,而是一个整数数组,因此集合选择在这种情况下似乎不起作用 技术1: select_tag(:zev_qty, options_for_select(display_quantity(@order_subject_supplies_request.site), {:disabled => display_quantity(@order_subject_supplies_request.site)})) def display_quanti

我正在尝试禁用选择标记。填充我们的选项不是数据库属性,而是一个整数数组,因此集合选择在这种情况下似乎不起作用

技术1:

select_tag(:zev_qty, options_for_select(display_quantity(@order_subject_supplies_request.site), {:disabled => display_quantity(@order_subject_supplies_request.site)}))

def display_quantity(site)
  if site
    site.open_site? ? [[0,0],[1,1],[2,2]] : [[0,0],[1,1]]
  else
    []
  end
end
以上不是我想要的。它禁用选项,而不是选择标记

技术2:

f.select(:zev_qty, display_quantity(@order_subject_supplies_request.site), {:disabled => true})
  def display_quantity(site)
    if site
      site.open_site? ? [0,1,2] : [0,1]
    else
      []
    end
  end
上述方法不起作用。所有选项均未禁用


虽然在这两种情况下,正确的值都显示在下拉列表中,但select标记并没有被禁用,请注意,在本例中,我只是将disabled设置为true,但我当然会有条件地禁用select标记。

select方法定义为

f.select(method, choices, options = {}, html_options = {}),
因此,您的第二次尝试几乎是正确的,除了必须在作为第四个参数的散列中指定disabled选项,以便将其作为属性应用于select标记本身