添加选项组标签以下拉

时间:2013-05-08 08:00:27

标签: ruby-on-rails ruby html-select

我正在为像

这样的用户创建一个下拉列表
  = f.association :user,  :collection => current_user.company.users.order('first_name'),
                      :include_blank => "Select a approver",
                      :label => false, 

它创造了我想要的下拉。 现在我想在所有用户之前添加一个不可选择的标签

我希望m drop看起来像

label field   
all users list goes after label

此标签字段不可选,即用户无法选择此标签。 任何想法??

1 个答案:

答案 0 :(得分:0)

您可以像这样手动添加选项:

:collection => { "My new label" => ""}.merge(current_user.company.users.order('first_name'))

您可能希望将其提取为辅助方法,但我会将其留给您。

新选项现在与空值相关联,因此您可以通过模型中的验证阻止选择此选项:

class MyModel < ActiveReceord::Base
  validates :user, :presence => true

  # ...
end

现在,要禁用特定选项,您可以添加选项:disabled => [...]来选择帮助程序,这会将HTML disabled attribute添加到您指定的选项中:

= f.association :user,
    :collection => :collection => { "My new label" => ""}.merge(current_user.company.users.order('first_name')),
    :include_blank => "Select a approver",
    :label => false,
    :disabled => [""]