使用默认值选中rails check_box_tag set

我目前有一个看起来像rails的check_box_tag调用

check_box_tag #{name} 

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

 check_box_tag name, value, checked 

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

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

 check_box_tag name, value, true 

如果您想要选中复选框,那么

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

除此以外

 check_box_tag name, value 

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

例子:

 check_box_tag 'receive_email', 'yes', true # =>  check_box_tag 'tos', 'yes', false, class: 'accept_tos' # =>  check_box_tag 'eula', 'accepted', false, disabled: true # =>  

api.rubyonrails.org

没有办法直接做到这一点。 但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 

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

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