Ruby on rails rails复选框标记集已使用默认值选中

Ruby on rails rails复选框标记集已使用默认值选中,ruby-on-rails,checkbox,arguments,Ruby On Rails,Checkbox,Arguments,我目前有一个rails复选框标记调用 check_box_tag #{name} 我想包括一个选中的属性,我知道我可以使用它 check_box_tag name, value, checked 但是如果我想将其设置为checked而不显式指定值(我只想使用默认值),该怎么办呢。或者类似地,如果我想指定html选项而不指定checked属性,该怎么办。有办法做到这一点吗?没有办法直接做到这一点。但是复选框标记实现非常简单,您可以对其进行修补或创建自己的帮助器 最初的实施: def che

我目前有一个rails复选框标记调用

check_box_tag #{name}
我想包括一个选中的属性,我知道我可以使用它

check_box_tag name, value, checked

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

没有办法直接做到这一点。但是
复选框标记
实现非常简单,您可以对其进行修补或创建自己的帮助器

最初的实施:

  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

如果希望选中复选框,则

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

check_box_tag name, value

只是想更新一下。
复选框标记的第三个参数是表示选中状态的布尔值

check_box_tag name, value, true

如果有人有列类型boolean,那么看看这个。你检查过了吗?将是默认的布尔值。这对我有用


复选框标签(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" />
选中标记“接收电子邮件”、“是”的复选框
# => 
选中复选框标记“tos”,“是”,false,类:“接受tos”
# => 
复选框标记“eula”、“已接受”、“false”和“已禁用”:true
# => 

如果您将值“1”传递给值字段,它将传递复选框的真实状态值,而不管选中的默认值:

is_checked = <default boolean>

check_box_tag :show_defaults, '1', is_checked
是否已选中=
复选框标记:是否选中显示默认值“1”

(现在总是反映用户输入)

我不明白您为什么不想设置值。你能给出一个用例吗?或者说我想设置一个HTML属性,而不显式地指定选中状态(我只想使用默认值)-我相信这是同一个问题。通过使用这种技术,DOM会生成关于两个元素具有相同ID的错误。在这种情况下,“值”是什么?@Akron我也有同样的问题!所以我问,答案是和