2012-08-03 8 views
15

ich zur Zeit ein Schienen check_box_tag Anruf haben, die Schienen check_box_tag Set mit Standardwert überprüft

check_box_tag #{name} 

Ich möchte gehören ein Attribut checked wie

sieht, was ich weiß, dass ich mit

check_box_tag name, value, checked 

tun können, aber Was ist, wenn ich es auf überprüfen möchte, ohne explizit value (ich möchte nur den Standard verwenden) angeben. Oder ähnlich, was wäre, wenn ich HTML-Optionen angeben möchte, ohne das Attribut checked anzugeben. Gibt es eine Möglichkeit, dies zu tun?

+0

I verstehe nicht, warum du keinen Wert setzen willst. Können Sie einen Anwendungsfall geben? – Dougui

+0

Oder sagen wir einfach, ich möchte ein HTML-Attribut festlegen, ohne explizit den aktivierten Status anzugeben (ich möchte nur den Standard verwenden) - das gleiche Problem glaube ich. –

Antwort

3

Es gibt keine Möglichkeiten, dies direkt zu tun. Aber die Implementierung ist trivial, Sie können Affe patch es oder erstellen Sie eigene Helfer.

Original-Implementierung:

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

Wenn Sie das Kontrollkästchen soll geprüft werden, dann

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

sonst

check_box_tag name, value 
10

Ich wollte nur diese aktualisieren. Der dritte Parameter für ist ein boolescher Wert, der den geprüften Status darstellt.

1

Wenn jemand Spalte Typ boolean dann sehen Sie sich dies an. wird geprüft? wird standardmäßig boolescher Wert sein. Es hat für mich funktioniert.

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

2

check_box_tag (name, value = "1", geprüft = false, options = {})

Beispiele:

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

Verwandte Themen