2012-10-18 20 views
11

Czy ktoś może mi powiedzieć, jak ustawić te pola wyboru, aby sprawdzić? Jestem pewien, że to proste, ale po godzinie próbowania myślę, że muszę zapytać! Dzięki!Jak sprawdzić pole wyboru w Haml za pomocą 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' 

Odpowiedz

14

Ref check_box_tag

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

Twój 2nd parameter musi być value od wyboru

Twój 3rd parameter musi być boolean condition które zwracają true/false i zależy od niego pole wyboru jest checked/unchecked

+0

dla szyn 5 widzę tylko http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-check_box – akostadinov

2

Zastosowanie prawdziwe dla Sprawdzone lub false dla Niezaznaczone wt on końca linii

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

lub

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

Według doku API sprawdzić tag pole przyjmuje następujące opcje:

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

Oznacza to pierwsza wartość jest nazwa, druga wartość jest "wartością", a trzecią wartością jest to, czy pole jest zaznaczone, które jest domyślnie fałszywe. Tak, aby zaznaczyć lub odznaczyć pole można wykonać następujące czynności:

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

Druga linia po prostu kładzie losowy ciąg znaków w polu wartości, ponieważ w tym przypadku nie ma znaczenia.

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

gdzie @selected jest tablicą z wybranym elementem.

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

Witamy SO! Czy możesz dodać jakieś wyjaśnienie? A przy okazji, jeśli wybierzesz [SO tour] (http://stackoverflow.com/tour), dostaniesz swoją pierwszą błyszczącą plakietkę;) –

0

Opierając się na odpowiedzi Sali. O dziwo, zwraca pole wyboru bez tekstu etykiety. Oto, jak możesz wyświetlać tekst w przypadku iteracji po tablicy.

- Puppies.each do |puppy| 
    = check_box_tag(puppy.name, puppy.name, puppy.goodboy?) 
    = puppy.name 
Powiązane problemy