Как проверить флажок в Haml, используя check_box_tag
Может ли кто-нибудь сказать мне, как установить эти флажки для проверки? Я уверен, что это просто, но после часа попыток я думаю, что мне нужно спросить! Спасибо!
= form_tag movies_path, :id => 'ratings_form', :method => :get do
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]",
= submit_tag 'Refresh', :id => 'ratings_submit'
Ответы
Ответ 1
Ref check_box_tag
check_box_tag "ratings[#{rating}]", 1, !!(rating.rating)
Ваш 2nd parameter
должен быть value
для флажка
Ваш 3rd parameter
должен быть boolean condition
, который возвращает true/false
и зависит от него. checked/unchecked
Ответ 2
check_box_tag "ratings[#{rating}]", 1, @selected.include?("#{rating}")
где @selected
- массив с выбранным элементом.
Ответ 3
Используйте true для Checked или false для Unchecked в конце строки
check_box_tag "ratings[#{rating}]", true #checked
или
check_box_tag "ratings[#{rating}]", false #unchecked
Ответ 4
В соответствии с api док-станцией тег флажка имеет следующие параметры:
check_box_tag(name, value = "1", checked = false, options = {})
Это означает, что первым значением является имя, второе значение - "значение", а третье значение - это флажок, который по умолчанию равен false. Итак, чтобы проверить или снять флажок, вы можете сделать следующее:
- if (some condition)
= check_box_tag "ratings[#{rating}]", "anystring", true
- else
= check_box_tag "ratings[#{rating}]"
Вторая строка просто помещает случайную строку в поле значений, потому что в этом случае это не имеет значения.
Ответ 5
Основываясь на ответе Сали. Как ни странно, check_box_tag
возвращает флажок без текста меток. Здесь вы можете отображать текст, если вы выполняете итерацию по массиву.
- Puppies.each do |puppy|
= check_box_tag(puppy.name, puppy.name, puppy.goodboy?)
= puppy.name
Ответ 6
= check_box_tag "ratings[#{rating}]",{},{:checked => ""}