2012-08-03 87 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