【发布时间】:2021-08-05 20:18:03
【问题描述】:
check_box_tag 的文档如下:
check_box_tag(name, value = "1", checked = false, options = {}) public
创建一个复选框表单输入标签。
value 参数是什么?
我在自己的复选框表单中为value 参数提供了许多不同的值,但复选框的工作方式似乎相同(有效,我只想知道value 在做什么?)。
看来some others也被它迷惑了。
示例
它们在我的应用程序中做同样的事情(它们都完美地工作,这是我没有预料到的):
<%= check_box_tag :approved, "hi there", user.approved? %>
<%= check_box_tag :approved, "1", user.approved? %>
【问题讨论】:
-
这两者的 HTML 完全相同,你能展示一下它们的 HTML 输出是什么吗? (对于这两个例子,下面的第一个答案是什么?)
-
@RockwellRice 感谢您的帮助。我最终使用了
check_box(而不是check_box_tag),所以我不再试图弄清楚了。但令人惊讶的是,value参数似乎并没有影响表单的可操作性——当提交检查时,它会将 db 中的布尔值设置为 true,而当未检查提交时,它会将布尔值设置为 false (即使value是故意愚蠢的,比如“你好”)。 -
如果你有一个布尔列,实际的转换发生在模型的后面。除了
'0'、'false'、'FALSE'、'f'和'F'之外的任何真值都是 true。''被视为零。 stackoverflow.com/a/60769537/544825 -
@max 如果我将问题改写为“check_box_tag 中的值如何工作?”,您愿意将您的评论变成答案吗?我觉得我不是唯一一个不这样做的人知道它是如何工作的,所以它也可能对其他人有用。
标签: ruby-on-rails ruby-on-rails-6