在 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 是不是选中/取消选中该框