在 Rails 上将复选框默认设置为 true

Posted

技术标签:

【中文标题】在 Rails 上将复选框默认设置为 true【英文标题】:Set checkbox default to true on rails 【发布时间】:2011-08-03 14:48:40 【问题描述】:

我正在尝试使用 Rails 中的 check_box 助手将复选框的默认值设置为默认值。我在Rails api documentation中找不到解决方案

使用check_box_tag 似乎真的很容易,但我需要使用上面的帮助程序,因为我需要它用于模型对象

是否可以将 check_box_tag 用于模型对象..?从文档中看起来不是这样。

如果我不能在 Rails 中直接实现,您能否建议任何 javascript、jquery 解决方法。

我在Rails 2.0.2 用于项目特定目的。

任何关于这方面的指导都会非常方便..

非常感谢..

【问题讨论】:

【参考方案1】:

由于复选框与模型的某个字段相关联,因此您只需在模型上将值设置为 true:

在您的控制器中:

def new
  @model = Model.new
  @model.my_value = true
end

在你看来:

<%= f.check_box :my_value %>

【讨论】:

通常你会使用一个带有布尔值的复选框,但我认为它也可以是一个整数。【参考方案2】:

我使用了 check_box_tag,因为我能够在帮助下找到满足我要求的有效解决方法..

这是如何使用相同的:-

<%=check_box_tag "model[local_variable]",1,true %>

这可能显示了 check_box_tag 的多功能性..

【讨论】:

这里唯一正确的解决方案是@Dylan Markow 建议 你为什么这么认为..??你能告诉我这个替代方案有什么问题吗? 主要思想是你的复选框应该依赖模型数据。在您的情况下,即使真实属性为假,也总是会检查它。在现实生活中,我会以这种方式改进@Dylan 的答案:只需在迁移中默认将my_value 设置为true,因此每个新对象都将具有true 属性,而现有对象将是它的属性 你的意思是说如果我“取消选中”默认的“选中”框,它仍然会带有“真”值..? .事实并非如此..我已经用日志中传递的值验证了这一点.. 表示即使Model属性为false也会检查

以上是关于在 Rails 上将复选框默认设置为 true的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 上将 True 设置为 BooleanField 的默认值?

Rails:form_for 复选框设置为 true 或 false 是不是选中/取消选中该框

Inno Setup:将桌面图标复选框的默认值设置为 true

如何设置默认选中复选框ReactJS?

如何用JS控制复选框选中,element.checked

android RadioButton怎么设置默认选中