存储为空或零的MySql上的Rails复选框

bcs*_*hes 7 ruby ruby-on-rails

在我的rails应用程序上,我有一个项目列表(如任务列表),每个项目都有一些复选框来设置参数.

当我提交表单时,复选框将存储为零,并且在DB上未选中为null.

问题是:有没有办法配置它?要将数据存储在更传统的0或1上,因为我认为将null存储为false而0存储为true有点令人困惑,特别是如果另一个应用程序(如C应用程序)需要读取数据.

Yar*_*boy 3

假设您正在使用的属性是club_member如“您是club_member吗?”。

请注意,在 Ruby/Rails 中,它现在的工作方式是:if model.club_member如果未检查(值为 null 或在 Ruby 中为 nil),则返回 false;如果检查(值为 0),则返回 true。

总的来说,我强烈建议您不要让其他应用程序(如 C 应用程序)直接访问您的数据,而应该在 Ruby/Rails 中构建一个 API,将应用程序中的数据公开给外部实体。通过这种方式,您将更好地封装应用程序的内部结构,并且不必担心此类问题。


然而,话虽如此,这就是你的答案:

使用:

value="1"
Run Code Online (Sandbox Code Playgroud)

...复选框 HTML 标记中的属性,并将布尔属性(在迁移中)的默认值设置为 0。