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