0

我正在为以下用户创建一个下拉列表 -

  = 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

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

4

1 回答 1

0

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

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

你可能想把它提取到一个辅助方法中,但我会留给你。

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

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

  # ...
end

现在,为了禁用特定选项,您可以添加一个选项:disabled => [...]来选择帮助器,这会将HTMLdisabled属性添加到您指定的选择选项中:

= f.association :user,
    :collection => :collection => { "My new label" => ""}.merge(current_user.company.users.order('first_name')),
    :include_blank => "Select a approver",
    :label => false,
    :disabled => [""]
于 2013-05-08T08:28:15.317 回答