在DB中设置布尔值

时间:2014-05-13 18:55:38

标签: sql ruby-on-rails ruby-on-rails-3 postgresql ruby-on-rails-4

存储布尔值的方式因数据库而异。有些使用1和0整数值分别表示true和false。其他人使用T和F等字符。

如何选择使用哪个? 1和0,还是T和F?同样,我如何设置它们?

请帮我解决此问题!

谢谢!

2 个答案:

答案 0 :(得分:3)

请勿尝试完成数据库适配器的工作:根据您设置的内容(一个用于MySQL,一个用于PostgreSQL等),他们将知道要写什么。

User.create(is_admin: false) # use Ruby's boolean classes, 
# the adapter will translate it in its own language to persist it in the DB

以同样的方式,反向将完美地运作:

User.first.is_admin # => return `true` or `false` (objects of Ruby, not a string like 'true' or 1 or 'T' or whatever)

答案 1 :(得分:-1)

对布尔值使用true或false,数据库适配器处理其余部分,在设置中只提及@​​model_object是模型的对象然后你可以像这样坐着它@model_object.attribute = false or true