How to check a check box in Haml using check_box_t

2019-01-25 07:23发布

Can someone tell me how to set these check boxes to checked? I'm sure it's simple, but after an hour of trying i think I need to ask! Thanks!

= 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'

6条回答
该账号已被封号
2楼-- · 2019-01-25 07:39

Ref check_box_tag

check_box_tag "ratings[#{rating}]",  1, !!(rating.rating)

Your 2nd parameter must be value of checkbox

Your 3rd parameter must be a boolean condition which return true/false and depends on it checkbox is checked/unchecked

查看更多
甜甜的少女心
3楼-- · 2019-01-25 07:47

According to the api dock, check box tag takes the following options:

check_box_tag(name, value = "1", checked = false, options = {})

This means the first value is the name, the second value is a 'value' and the third value is whether the box is checked, which is default to false. So, in order to check or uncheck the box you can do the following:

- if (some condition)
  = check_box_tag "ratings[#{rating}]", "anystring", true
- else 
  = check_box_tag "ratings[#{rating}]" 

The second line just puts a random string into the value field because in this case it does not matter.

查看更多
女痞
4楼-- · 2019-01-25 07:50
= check_box_tag "ratings[#{rating}]",{},{:checked => ""}
查看更多
家丑人穷心不美
5楼-- · 2019-01-25 07:51

Use true for Checked or false for Unchecked at the end of the line

check_box_tag "ratings[#{rating}]", true #checked

or

check_box_tag "ratings[#{rating}]", false #unchecked
查看更多
Ridiculous、
6楼-- · 2019-01-25 08:00

Building on the answer by Sali. Strangely, the check_box_tag returns a checkbox with no label text. Here's how you can display text if you're iterating over an array.

- Puppies.each do |puppy|
  = check_box_tag(puppy.name, puppy.name, puppy.goodboy?)
  = puppy.name
查看更多
我欲成王,谁敢阻挡
7楼-- · 2019-01-25 08:04
check_box_tag "ratings[#{rating}]",  1, @selected.include?("#{rating}")

where @selected is an array with the element selected.

查看更多
登录 后发表回答