12

有人可以告诉我如何将这些复选框设置为选中吗?我敢肯定这很简单,但经过一个小时的尝试,我想我需要问一下!谢谢!

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

6 回答 6

16

参考check_box_tag

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

2nd parameter必须是value复选框

3rd parameter必须是一个boolean condition返回true/false并依赖于它的复选框是checked/unchecked

于 2012-10-18T14:47:47.020 回答
3
check_box_tag "ratings[#{rating}]",  1, @selected.include?("#{rating}")

where@selected是一个包含选定元素的数组。

于 2014-05-28T01:01:07.397 回答
2

在行尾对 Checked 使用 true 或对 Unchecked 使用 false

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

或者

check_box_tag "ratings[#{rating}]", false #unchecked
于 2012-10-19T00:41:57.613 回答
2

根据 api dock,复选框标签采用以下选项:

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}]" 

第二行只是将一个随机字符串放入 value 字段中,因为在这种情况下它无关紧要。

于 2014-02-16T23:11:05.473 回答
0

基于萨利的答案。奇怪的是,check_box_tag返回一个没有标签文本的复选框。如果您正在迭代数组,以下是显示文本的方法。

- Puppies.each do |puppy|
  = check_box_tag(puppy.name, puppy.name, puppy.goodboy?)
  = puppy.name
于 2017-09-05T14:36:53.833 回答
-3
= check_box_tag "ratings[#{rating}]",{},{:checked => ""}
于 2015-07-14T09:00:54.663 回答