2

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

如何选择要使用的字符? 1和0,或T和F?同样,我如何设置它们?

请帮我解决这个问题!

谢谢!

+0

PostgreSQL高兴地接受'true' /'false','0' /'1'或''''''''''f''作为布尔文本(根据文档) 。也就是说,正如@MrYoshiji所说,在Rails中,ORM为您处理这些细节。 –

+0

我的回答有帮助吗? – MrYoshiji

回答

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

使用真或假布尔,DB适配器处理剩下的,在设定只是提及是否@model_object是模型的对象那么你可以这样坐下来
@model_object.attribute = false or true