我正在尝试在表单上设置复选框的默认值,以便除非用户未选中它,否则它将为真。通常,我可以在复选框上将 :checked 属性设置为 true
f.check_box :send_emails, :checked => true
但是,如果表单上的验证失败,并且用户取消选中该框,则在重新呈现“新”操作时将再次选中该框。即使重新渲染发生时用户对象上的值确实为假,因为我将“检查”属性设置为真,它会忽略该值。
为了解决这个问题,我将它放在控制器中以执行新操作
@user.send_emails ||= true
它看起来很丑,所以我正在寻找一种不同的方法。有人想出一些不同的东西吗?