Rails check_box_tag установлен с установленным значением по умолчанию

В настоящее время у меня есть вызов rails check_box_tag, который выглядит как

check_box_tag #{name}

Я хочу включить проверенный атрибут, который, как я знаю, я могу сделать с

check_box_tag name, value, checked

Но что, если я хочу установить его для проверки без явного указания value (я просто хочу использовать значение по умолчанию). Или аналогично, что, если бы я хотел указать параметры html без указания атрибута checked. Есть ли способ сделать это?

Ответы

Ответ 1

Просто хотел обновить это. Третий параметр для check_box_tag - это логическое значение, представляющее проверенное состояние.

check_box_tag name, value, true

Ответ 2

Если вы хотите, чтобы флажок был установлен,

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

иначе

check_box_tag name, value

Ответ 3

Нет прямых способов сделать это. Но реализация check_box_tag тривиальна, вы можете обезглавить ее или создать собственный помощник.

Исходная реализация:

  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

check_box_tag (имя, value = "1", checked = false, options = {})

Примеры:

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

Ответ 5

Если у кого есть тип столбца boolean, тогда посмотрите на это. проверено? будет по умолчанию логическим значением. Это сработало для меня.

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