2012-10-18 11 views
11

Ai đó có thể cho tôi biết cách đặt các hộp kiểm này để kiểm tra không? Tôi chắc chắn nó đơn giản, nhưng sau một giờ cố gắng tôi nghĩ rằng tôi cần phải hỏi! Cảm ơn!Cách chọn hộp kiểm trong Haml bằng cách sử dụng 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' 

Trả lời

14

Ref check_box_tag

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

bạn 2nd parameter phải value của hộp kiểm

bạn 3rd parameter phải là một boolean condition mà trở true/false và phụ thuộc vào nó checkbox là checked/unchecked

+0

Đối với đường ray 5 Tôi chỉ thấy http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-check_box – akostadinov

2

Sử dụng đúng đối với Đã chọn hoặc sai cho Không được chọn tại t ông kết thúc của dòng

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

hoặc

check_box_tag "ratings[#{rating}]", false #unchecked 
2

Theo dock api, kiểm tra thẻ hộp mất các tùy chọn sau:

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

này có nghĩa là giá trị đầu tiên là tên, giá trị thứ hai là 'giá trị' và giá trị thứ ba là liệu hộp có được chọn không, giá trị mặc định là false. Vì vậy, để chọn hoặc bỏ chọn hộp, bạn có thể thực hiện các thao tác sau:

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

Dòng thứ hai chỉ đặt một chuỗi ngẫu nhiên vào trường giá trị vì trong trường hợp này không quan trọng.

3
check_box_tag "ratings[#{rating}]", 1, @selected.include?("#{rating}") 

trong đó @selected là mảng có phần tử được chọn.

-3
= check_box_tag "ratings[#{rating}]",{},{:checked => ""} 
+1

Chào mừng bạn đến SO! Bạn có thể vui lòng thêm một số lời giải thích? Và btw nếu bạn tham gia [SO tour] (http://stackoverflow.com/tour), bạn sẽ nhận được huy hiệu sáng bóng đầu tiên của mình;) –

0

Xây dựng câu trả lời của Sali. Kỳ lạ thay, trả về một hộp kiểm không có văn bản nhãn. Đây là cách bạn có thể hiển thị văn bản nếu bạn đang lặp qua một mảng.

- Puppies.each do |puppy| 
    = check_box_tag(puppy.name, puppy.name, puppy.goodboy?) 
    = puppy.name