web-dev-qa-db-fra.com

rails check_box_tag ensemble vérifié avec la valeur par défaut

J'ai actuellement un appel Rails check_box_tag qui ressemble à

check_box_tag #{name}

Je veux inclure un attribut vérifié, ce que je sais pouvoir faire avec

check_box_tag name, value, checked

Mais que se passe-t-il si je veux le définir sur vérifié sans spécifier explicitement value (je veux juste utiliser la valeur par défaut) Ou, de la même manière, si je voulais spécifier des options HTML sans spécifier l'attribut checked. Y a-t-il un moyen de faire cela?

19
Jeff Storey

Je voulais juste mettre à jour cela. Le troisième paramètre pour check_box_tag est une valeur booléenne représentant le statut vérifié.

check_box_tag name, value, true
15
KPheasey

Si vous voulez que la case à cocher soit cochée, alors

check_box_tag name, value, {:checked => "checked"} 

autrement

check_box_tag name, value
7
user2516008

check_box_tag (nom, valeur = "1", coché = faux, options = {})

Exemples:

check_box_tag 'receive_email', 'yes', true
# => <input checked="checked" id="receive_email" name="receive_email" type="checkbox" value="yes" />

check_box_tag 'tos', 'yes', false, class: 'accept_tos'
# => <input class="accept_tos" id="tos" name="tos" type="checkbox" value="yes" />

check_box_tag 'eula', 'accepted', false, disabled: true
# => <input disabled="disabled" id="eula" name="eula" type="checkbox" value="accepted" />

api.rubyonrails.org

6
shilovk

Il n'y a pas moyen de le faire directement. Mais l'implémentation check_box_tag est triviale, vous pouvez la corriger ou créer son propre assistant.

Mise en œuvre originale:

  def check_box_tag(name, value = "1", checked = false, options = {})
    html_options = { "type" => "checkbox", "name" => name, "id" => sanitize_to_id(name), "value" => value }.update(options.stringify_keys)
    html_options["checked"] = "checked" if checked
    tag :input, html_options
  end
4
dimuch

Si quelqu'un a un type de colonne booléen, regardez ceci. est vérifié? sera la valeur booléenne par défaut. Cela a fonctionné pour moi.

<%= hidden_field_tag :name, 'false' %> <%= check_box_tag :name, true, is_checked? %>

2
viks

Si vous transmettez une valeur de "1" au champ de valeur, la valeur de l'état réel de la case à cocher sera répercutée, quelle que soit la valeur par défaut cochée:

is_checked = <default boolean>

check_box_tag :show_defaults, '1', is_checked

(reflète désormais toujours les entrées de l'utilisateur)

0
Taylor Roozen