如何在 collection_select 类型字段上添加必需的 true

How to add required true on collection_select type field

我已经尝试在 collection_select 字段上添加 required=> true 和 :prompt=>"select..." ,但每次我都会遇到语法错误。如何解决下面的错误。

.field
  = f.label "Receiver"
  = f.collection_select(:receiver_admin_id, 
        Admin.agent_and_admin(current_admin.id, current_admin.parent_master_agent_id), 
        :id, 
        :agent_name, 
        :prompt => 'Select receiver', 
        {multiple: true}), 
      :required => true
  = f.collection_select(:receiver_admin_id, 
        Admin.agent_and_admin(current_admin.id, current_admin.parent_master_agent_id), 
        :id, 
        :agent_name, 
        :prompt => 'Select receiver', 
        {multiple: true, required: true})

  = f.collection_select(:receiver_admin_id, 
        Admin.agent_and_admin(current_admin.id, current_admin.parent_master_agent_id), 
        :id, 
        :agent_name, 
        :prompt => 'Select receiver',
        {}, 
        {multiple: true}), 
      :required => true
  = f.collection_select :receiver_admin_id, 
        Admin.agent_and_admin(current_admin.id, current_admin.parent_master_agent_id), 
        :id, 
        :agent_name, 
        :prompt => 'Select receiver', 
        {multiple: true}, 
        :required => true

请试试这个:

  = f.collection_select :receiver_admin_id, Admin.agent_and_admin(current_admin.id, current_admin.parent_master_agent_id), :id, :agent_name, {prompt: 'Select receiver'}, {multiple: true, required: true}

你几乎每次都接近 :) 从文档 in the rails guide 你有:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

使用表单助手 (f.) 意味着对象(第一个参数)得到处理,因此您剩下:

method, collection, value_method, text_method, options, html_options

multiple 和 required 都需要在 html_options 所以:

= f.collection_select(:receiver_admin_id, Admin.agent_and_admin(current_admin.id, current_admin.parent_master_agent_id), :id, :agent_name, { :prompt => 'Select receiver' }, multiple: true, :required => true)