tag ror rails form_with form check_box_tag check_box ruby-on-rails checkbox arguments

ruby on rails - ror - rieles check_box_tag conjunto verificado con valor predeterminado



rails check_box (6)

Actualmente tengo una llamada check_box_tag de rieles que parece

check_box_tag #{name}

Quiero incluir un atributo marcado, que sé que puedo hacer con

check_box_tag name, value, checked

Pero, ¿qué ocurre si quiero configurarlo como comprobado sin especificar explícitamente el value (solo quiero usar el valor predeterminado)? O, de manera similar, qué pasa si quisiera especificar las opciones html sin especificar el atributo checked . ¿Hay alguna forma de hacer esto?


No hay maneras de hacerlo directamente. Pero la implementación de check_box_tag es trivial, puedes parchearlo o crear tu propio ayudante.

Implementación original:

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 alguien tiene un tipo de columna booleano, mira esto. ¿está chequeado? será el valor booleano por defecto. Funciono para mi

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


Si desea que se marque la casilla de verificación,

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

de otra manera

check_box_tag name, value


Si pasa un valor de "1" al campo de valor, pasará el valor del estado real de la casilla de verificación, independientemente del valor predeterminado marcado:

is_checked = <default boolean> check_box_tag :show_defaults, ''1'', is_checked

(ahora siempre refleja la entrada del usuario)


Solo quería actualizar esto. El tercer parámetro para check_box_tag es un valor booleano que representa el estado verificado.

check_box_tag name, value, true


check_box_tag (nombre, valor = "1", marcado = falso, opciones = {})

Ejemplos:

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