我bit
在 MySQL 数据库中有一个类型的字段,但我不确定如何访问该值。
rubydebug
方法给了我(注意空格,它们可能是以二进制形式存储的不可见字符):
--- &id001 !ruby/object:Room
attributes:
bit_field_false: !binary |
AA==
bit_field_true: !binary |
AQ==
bit_field_false
bit_field_true
应该是和false
分别true
。我还注意到一些奇怪的属性:
- 当我将它们转换为整数时,它们都显示为
0
- 当我提取真值时,即
<%= @room.bit_field_true ? "true" : "false" %>
和<%= @room.bit_field_false ? "true" : "false" %>
,它们都产生true
- 当我将它们显示为字符串时,它们显示为空字符串
如何获得它们各自的值?二进制值是否意味着什么?
最终目标是在复选框中显示它们,我有类似的东西:
<% form_for(@room) do |room_f| %>
<%= check_box_tag :room_bit_field_false %><br/>
<%= check_box_tag :room_bit_field_true %><br/>
<% end %>
但它总是显示为未选中。我不确定这是如何为此设置创建复选框,所以这也可能是错误的,但不管我想知道如何在代码中提取位值。
作为参考,我使用的是 Ruby on Rails 2.3.2,带有mysql
适配器和 mysql Ver 14.14 Distrib 5.5.10, for osx10.6 (i386)
。