2012-08-03 90 views
15

我現在有一個導軌check_box_tag調用,看起來像軌check_box_tag設定的默認值檢查

check_box_tag #{name} 

我想包括檢查屬性,我知道我可以做

check_box_tag name, value, checked 

但如果我想將它設置爲選中而沒有明確指定value(我只是想使用默認值),該怎麼辦?或者類似地,如果我想指定html選項而不指定checked屬性,該怎麼辦?有沒有辦法做到這一點?

+0

我不明白你爲什麼不想設定價值。你能提供一個用例嗎? – Dougui 2012-08-03 13:39:45

+0

或者讓我們只是說我想設置一個HTML屬性而不明確指定選中的狀態(我只是想使用默認值) - 我相信同樣的問題。 – 2012-08-03 13:48:17

回答

3

有沒有辦法直接做到這一點。但的實現是微不足道的,你可以猴子補丁或創建自己的幫手。

原執行:

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

如果你想複選框進行檢查,然後

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

否則

check_box_tag name, value 
10

只是想更新此。 的第三個參數是表示檢查狀態的布爾值。

check_box_tag name, value, true 
1

如果有人有列類型布爾值,然後看看這個。 is_checked?將是默認的布爾值。它爲我工作。

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

2

check_box_tag(名稱,值= 「1」,檢查=假,選項= {})

實例:

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