【问题标题】:Multiple select in administrate管理中的多项选择
【发布时间】:2016-11-19 12:31:33
【问题描述】:

因为 administrate 还不支持多选。有没有人创建自定义多选?最好是像 HasMany 选择一样工作的。

【问题讨论】:

    标签: ruby-on-rails ruby rails-administrate


    【解决方案1】:

    这是以防其他人需要它:

    app/fields/multiple_select_field.rb

    # app/fields/multiple_select_field.rb
    
    require "administrate/field/base"
    
    class MultipleSelectField < Administrate::Field::Select
    
      def to_s
        data
      end
    
      def self.permitted_attribute(attribute)
        { attribute.to_sym => [] }
      end
    
      def permitted_attribute
        self.class.permitted_attribute(attribute)
      end
    
    end
    

    app/views/fields/multiple_select_field/_form.html.erb

    # app/views/fields/multiple_select_field/_form.html.erb
    
    <div class="field-unit__label">
      <%= f.label field.attribute %>
    </div>
    <div class="field-unit__field">
      <%= f.select(
        field.attribute,
        options_from_collection_for_select(
          field.selectable_options,
          :to_s,
          :to_s,
          field.data.presence,
        ),
        {}, multiple: true,
      ) %>
    </div>
    

    app/views/fields/multiple_select_field/_index.html.erb

    # app/views/fields/multiple_select_field/_index.html.erb
    <%= field.to_param.join(', ') %>
    

    app/views/fields/multiple_select_field/_show.html.erb

    # app/views/fields/multiple_select_field/_show.html.erb
    <%= field.to_param.join(', ') %>
    

    【讨论】:

    • 好东西!我究竟如何将它合并到 attribute_dashboard.rb 中?
    • @Esseme 多年未使用此功能,但假设您只需像使用任何其他管理字段一样在视图中使用它。
    • 嗨@dan-klasson,我正在尝试通过提供复选框来选择记录并一次删除多个来实现批量删除,请您指出我如何实现这一目标的正确方向,谢谢。
    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多