dsfr_collection_check_boxes

Génère un groupe de <input type="checkbox"> au DSFR à partir d'une collection.

Documentation DSFR - Case à cocher

Usage basique

Centres d'intérêt
<%= f.dsfr_collection_check_boxes :interests, interest_collection, :id, :name, legend: "Centres d'intérêt" %>

<fieldset class="fr-fieldset">
  <legend class="fr-fieldset__legend--regular fr-fieldset__legend">Centres d'intérêt</legend>
  <input type="hidden" name="usage-basique[interests][]" value="" autocomplete="off" />
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="usage-basique[interests][]" value="sport" id="usage-basique_interests_sport" type="checkbox" />
      <label class="fr-label" for="usage-basique_interests_sport">Sport</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="usage-basique[interests][]" value="music" id="usage-basique_interests_music" type="checkbox" />
      <label class="fr-label" for="usage-basique_interests_music">Musique</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="usage-basique[interests][]" value="travel" id="usage-basique_interests_travel" type="checkbox" />
      <label class="fr-label" for="usage-basique_interests_travel">Voyage</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="usage-basique[interests][]" value="reading" id="usage-basique_interests_reading" type="checkbox" />
      <label class="fr-label" for="usage-basique_interests_reading">Lecture</label>
    </div>
  </div>
</fieldset>

Options disponibles

OptionTypeDescription
legend:StringTitre du groupe (obligatoire)
hint:StringTexte d'aide affiché sous la légende
inline:BooleanAffichage en ligne des cases
name:StringNom personnalisé pour les champs

Paramètres

ParamètreDescription
methodNom de l'attribut du modèle
collectionCollection d'objets à afficher
value_methodMéthode pour obtenir la valeur (ex:)
text_methodMéthode pour obtenir le texte (ex:)

Signature

dsfr_collection_check_boxes(method, collection, value_method, text_method, opts = {}, html_options = {})

Avec texte d'aide

Centres d'intérêtSélectionnez un ou plusieurs choix
<%= f.dsfr_collection_check_boxes :interests, interest_collection, :id, :name, legend: "Centres d'intérêt", hint: "Sélectionnez un ou plusieurs choix" %>

<fieldset class="fr-fieldset">
  <legend class="fr-fieldset__legend--regular fr-fieldset__legend">Centres d'intérêt<span class="fr-hint-text">Sélectionnez un ou plusieurs choix</span></legend>
  <input type="hidden" name="hint[interests][]" value="" autocomplete="off" />
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="hint[interests][]" value="sport" id="hint_interests_sport" type="checkbox" />
      <label class="fr-label" for="hint_interests_sport">Sport</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="hint[interests][]" value="music" id="hint_interests_music" type="checkbox" />
      <label class="fr-label" for="hint_interests_music">Musique</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="hint[interests][]" value="travel" id="hint_interests_travel" type="checkbox" />
      <label class="fr-label" for="hint_interests_travel">Voyage</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="hint[interests][]" value="reading" id="hint_interests_reading" type="checkbox" />
      <label class="fr-label" for="hint_interests_reading">Lecture</label>
    </div>
  </div>
</fieldset>

Affichage inline

Centres d'intérêt
<%= f.dsfr_collection_check_boxes :interests, interest_collection, :id, :name, legend: "Centres d'intérêt", inline: true %>

<fieldset class="fr-fieldset">
  <legend class="fr-fieldset__legend--regular fr-fieldset__legend">Centres d'intérêt</legend>
  <input type="hidden" name="inline[interests][]" value="" autocomplete="off" />
  <div class="fr-fieldset__element fr-fieldset__element--inline">
    <div class="fr-checkbox-group">
      <input name="inline[interests][]" value="sport" id="inline_interests_sport" type="checkbox" />
      <label class="fr-label" for="inline_interests_sport">Sport</label>
    </div>
  </div>
  <div class="fr-fieldset__element fr-fieldset__element--inline">
    <div class="fr-checkbox-group">
      <input name="inline[interests][]" value="music" id="inline_interests_music" type="checkbox" />
      <label class="fr-label" for="inline_interests_music">Musique</label>
    </div>
  </div>
  <div class="fr-fieldset__element fr-fieldset__element--inline">
    <div class="fr-checkbox-group">
      <input name="inline[interests][]" value="travel" id="inline_interests_travel" type="checkbox" />
      <label class="fr-label" for="inline_interests_travel">Voyage</label>
    </div>
  </div>
  <div class="fr-fieldset__element fr-fieldset__element--inline">
    <div class="fr-checkbox-group">
      <input name="inline[interests][]" value="reading" id="inline_interests_reading" type="checkbox" />
      <label class="fr-label" for="inline_interests_reading">Lecture</label>
    </div>
  </div>
</fieldset>

Avec nom personnalisé

Utile pour des formulaires complexes ou des nested attributes.

Centres d'intérêt
<%= f.dsfr_collection_check_boxes :interests, interest_collection, :id, :name, legend: "Centres d'intérêt", name: "user[interest_ids][]" %>

<fieldset class="fr-fieldset">
  <legend class="fr-fieldset__legend--regular fr-fieldset__legend">Centres d'intérêt</legend>
  <input type="hidden" name="user[interest_ids][]" value="" autocomplete="off" />
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="user[interest_ids][]" value="sport" id="name_interests_sport" type="checkbox" />
      <label class="fr-label" for="name_interests_sport">Sport</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="user[interest_ids][]" value="music" id="name_interests_music" type="checkbox" />
      <label class="fr-label" for="name_interests_music">Musique</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="user[interest_ids][]" value="travel" id="name_interests_travel" type="checkbox" />
      <label class="fr-label" for="name_interests_travel">Voyage</label>
    </div>
  </div>
  <div class="fr-fieldset__element">
    <div class="fr-checkbox-group">
      <input name="user[interest_ids][]" value="reading" id="name_interests_reading" type="checkbox" />
      <label class="fr-label" for="name_interests_reading">Lecture</label>
    </div>
  </div>
</fieldset>