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?
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
Si vous voulez que la case à cocher soit cochée, alors
check_box_tag name, value, {:checked => "checked"}
autrement
check_box_tag name, value
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" />
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
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? %>
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)