3

administrate はまだ複数選択をサポートしていないためです。カスタムの複数選択を作成した人はいますか? できれば、HasMany選択のように機能するもの。

4

1 に答える 1

5

他の誰かがそれを必要とする場合は、次のとおりです。

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

アプリ/ビュー/フィールド/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>

アプリ/ビュー/フィールド/multiple_select_field/_index.html.erb

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

アプリ/ビュー/フィールド/multiple_select_field/_show.html.erb

# app/views/fields/multiple_select_field/_show.html.erb
<%= field.to_param.join(', ') %>
于 2016-11-20T07:06:25.450 に答える