2012-08-03 13 views
15

Al momento ho un rotaie check_box_tag chiamata che assomigliarotaie check_box_tag set controllato con valore di default

check_box_tag #{name} 

voglio includere un attributo, documento che so di poter fare con

check_box_tag name, value, checked 

Ma cosa succede se voglio impostarlo su checked senza specificare esplicitamente value (voglio solo usare il default). O allo stesso modo, cosa succede se volessi specificare le opzioni html senza specificare l'attributo checked. C'è un modo per fare questo?

+0

I non capisco perché non vuoi impostare un valore. Puoi dare un caso d'uso? – Dougui

+0

Oppure diciamo che voglio impostare un attributo HTML senza specificare esplicitamente lo stato selezionato (voglio solo usare l'impostazione predefinita) - lo stesso problema credo. –

risposta

3

Non ci sono modi per farlo direttamente. Ma l'implementazione di è banale, puoi scimmiottarla o creare un proprio helper.

implementazione originale:

def check_box_tag(name, value = "1", checked = false, options = {}) 
    html_options = { "type" => "checkbox", "name" => name, "id" => sanitize_to_id(name), "value" => value }.update(options.stringify_keys) 
    html_options["checked"] = "checked" if checked 
    tag :input, html_options 
    end 
7

Se si desidera che la casella di controllo per controllare, poi

check_box_tag name, value, {:checked => "checked"} 

altrimenti

check_box_tag name, value 
10

Volevo solo aggiornare questo. Il terzo parametro per è un valore booleano che rappresenta lo stato verificato.

check_box_tag name, value, true 
1

Se qualcuno ha un tipo di colonna booleano, guarda questo. is_checked? sarà il valore booleano predefinito. Ha funzionato per me.

<%= hidden_field_tag :name, 'false' %> <%= check_box_tag :name, true, is_checked? %>

2

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

Esempi:

check_box_tag 'receive_email', 'yes', true 
# => <input checked="checked" id="receive_email" name="receive_email" type="checkbox" value="yes" /> 

check_box_tag 'tos', 'yes', false, class: 'accept_tos' 
# => <input class="accept_tos" id="tos" name="tos" type="checkbox" value="yes" /> 

check_box_tag 'eula', 'accepted', false, disabled: true 
# => <input disabled="disabled" id="eula" name="eula" type="checkbox" value="accepted" /> 

api.rubyonrails.org

Problemi correlati