2016-11-19 57 views
0

由于管理还不支持多选。有没有人创建了自定义多选?最好有一个像HasMany选择一样工作。多选管理

回答

2

这万一有人需要它:

# 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 

<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 
<%= field.to_param.join(', ') %> 

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

确保您滚动一路下跌。