使用默认值选中rails check_box_tag set

时间:2012-08-03 13:23:17

标签: ruby-on-rails checkbox arguments

我目前有一个看起来像

的rails check_box_tag调用
check_box_tag #{name}

我想要包含一个checked属性,我知道我可以用

check_box_tag name, value, checked

但是,如果我想将其设置为检查而不明确指定value(我只想使用默认值),该怎么办?或者类似地,如果我想指定html选项而不指定checked属性,该怎么办?有没有办法做到这一点?

6 个答案:

答案 0 :(得分:15)

只想更新此内容。 check_box_tag的第三个参数是表示已检查状态的布尔值。

check_box_tag name, value, true

答案 1 :(得分:8)

如果要选中复选框,则

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

,否则

check_box_tag name, value

答案 2 :(得分:6)

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

示例:

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

答案 3 :(得分:4)

没有办法直接做到这一点。但check_box_tag实现是微不足道的,你可以修补它或创建自己的帮助。

原始实施:

  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

答案 4 :(得分:2)

如果有人有列类型布尔值,那么看看这个。 is_checked?将是默认的布尔值。它对我有用。

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

答案 5 :(得分:0)

如果将“ 1”的值传递给value字段,则该值将传递复选框的真实状态的值,而与选中的默认值无关:

is_checked = <default boolean>

check_box_tag :show_defaults, '1', is_checked

(现在始终反映用户输入)