2012-10-18 5 views
11

Qualcuno può dirmi come impostare queste caselle di controllo su spuntato? Sono sicuro che sia semplice, ma dopo un'ora di tentativi penso di aver bisogno di chiedere! Grazie!Come selezionare una casella di controllo in Haml utilizzando 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' 

risposta

14

Rif check_box_tag

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

tuo 2nd parameter deve essere value della casella di controllo

tuo 3rd parameter deve essere un boolean condition che restituiscono true/false e dipende da esso casella di controllo è checked/unchecked

+0

Per rotaie 5 vedo solo http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-check_box – akostadinov

2

Uso vero per Selezionato o falso per Non selezionato a t egli fine della linea

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

o

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

Secondo il molo api, controllare tag scatola prende le seguenti opzioni:

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

Questo significa che il primo valore è la nome, il secondo valore è un 'valore' e il terzo valore è se la casella è selezionata, che è l'impostazione predefinita su falso. Così, al fine di selezionare o deselezionare la casella è possibile effettuare le seguenti operazioni:

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

La seconda linea mette solo una stringa casuale nel campo di valore perché in questo caso non ha importanza.

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

dove @selected è una matrice con l'elemento selezionato.

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

Benvenuti a SO! Puoi aggiungere qualche spiegazione? E se segui [SO tour] (http://stackoverflow.com/tour), riceverai il tuo primo badge lucido;) –

0

Sulla base della risposta di Sali. Stranamente, lo restituisce una casella di controllo senza testo dell'etichetta. Ecco come è possibile visualizzare il testo se si sta iterando su un array.

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