2017-01-20 4 views
0

J'ai les éléments suivants dans mon bloc de formulaire administrateur actif. Malheureusement, je ne suis pas en mesure de charger les sélections, même les mettre manuellement (comme ci-dessous):Comment remplir les valeurs dans plusieurs select dans admin actif (using select2)

f.input :hearing_loss_level, multiple: true, collection: ["Mild", "Moderate", "Severe", "Profound"], input_html: { value: ["Mild"] } 

Mise à jour:

Je pense que le problème est lié à l'utilisation select2 par https://github.com/platanus/activeadmin_addons

Répondre

0

Vous devriez utiliser le as: :select d'administration active pour remplir les zones de sélection,

f.input :hearing_loss_level, as: :select, multiple: true, collection: ["Mild", "Moderate", "Severe", "Profound"] ,input_html: { value: ["Mild"] } 
+0

J'ai essayé, mais cela n'a pas fonctionné pour moi – Abram

+0

une erreur dans la console? – Sravan

+0

supprimez d'abord 'multiple: true' et vérifiez une fois. – Sravan

0

Try this ...

dans le modèle:

DATA = ["Mild", "Moderate", "Severe", "Profound"] #whatsoever 

puis dans activeadmin:

f.input :hearing_loss_level, as: :select, multiple: true, collection: -> { ModelName::DATA }, input_html: { value: ["Mild"] } 

Espérons que cela fonctionnera pour vous.

+0

Méthode non définie 'map' pour proc – Abram

+0

@Abram: Mise à jour de ma réponse, Veuillez jeter un coup d'œil. –

+0

Donc, je pense que le problème est que j'utilise https://github.com/platanus/activeadmin_addons qui déclenche select2. Peut-être que ces solutions ne fonctionnent pas avec select2. Mettra à jour la question. – Abram

0

est ici ce qui a fini par travailler pour moi:

modèle Admin

filter :hearing_loss_level_cont, collection: ["Mild", "Moderate", "Severe", "Profound"], as: :select, label: 'Hearing Loss Level' 

form do |f| 
    f.inputs "Form Factor Details" do 
    f.input :hearing_loss_level, as: :select, multiple: true, collection: ["Mild", "Moderate", "Severe", "Profound"], input_html: {style:'width:80%'} 
    end 
    f.actions 
    render partial: 'administration/shared/multiple_select', locals: { 
    editing: 'form_factor', 
    context: 'hearing_loss_level', 
    selected: f.object.hearing_loss_level ? JSON.parse(f.object.hearing_loss_level).reject(&:empty?) : [] 
    } 
end 

controller do 
    def update 
    params["form_factor"]["hearing_loss_level"] = params["form_factor"]["hearing_loss_level"].reject(&:empty?) 
    super 
    end 
end 

administration/commune/multiple_select

<script> 
    $(document).ready(function() { 
    $("#<%= editing %>_<%= context %>").select2('val', <%= raw selected %>) 
    }) 
</script>