在我的rails应用程序上,我有一个项目列表(如任务列表),每个项目都有一些复选框来设置参数.
@H_403_2@当我提交表单时,复选框将存储为零,并且在DB上未选中为null.
@H_403_2@问题是:有没有办法配置它?要将数据存储在更传统的0或1上,因为我认为将null存储为false,将0存储为true有点令人困惑,特别是如果另一个应用程序(如C应用程序)需要读取数据.
解决方法
让我们假设你正在使用的属性是club_member,如“你是一个俱乐部成员吗?”.
@H_403_2@请注意,在Ruby / Rails中,它现在的工作方式,如果未检查model.club_member将返回false(值为null或在Ruby中为nil),如果选中它则为true(值为0).
@H_403_2@总的来说,我强烈建议您不要直接在数据中使用其他应用程序(如C应用程序),而应在Ruby / Rails中构建一个API,以便将应用程序中的数据公开给外部实体.通过这种方式,您将更好地封装应用程序的内部,您不必担心这样的事情.
@H_403_2@然而,所有这一切,这里是你的答案:
@H_403_2@使用:
value="1"@H_403_2@复选框HTML标记中的…属性,并将布尔属性的默认值(在迁移中)设置为0.