資料庫對 Boolean 型態支援不一,ActiveRecord 提供統一的真偽判斷慣例。
# 錯誤:資料庫可能存 'f'、0、'0',Ruby 視為 true if user.superuser grant_privileges end
# 正確:superuser? 會正確解讀 if user.superuser? grant_privileges end
以下值視為 false:數字 0、字串 "0"、"f"、"false"、""、nil、false。其餘皆為 true。
舊系統或非英文環境(如荷蘭語 J/N)可自訂:
class User < ActiveRecord::Base
def superuser?
self.superuser == 'J'
end
end