[英]Boolean values import to Rails
我有一個包含原始數據的.numbers電子表格,我將其導出為csv,並使用自定義的導入工具將數據導入到我的Rails應用程序中。 我在Numbers中有一些列,我只需輸入1
或0
來表示一個布爾字段。
以下是我對其中一個模型的驗證行:
validates :powered,
inclusion: [true, false]
由於要導入的值為1
並且我正在檢查該值是否針對true
或false
進行驗證,因此這顯然不是驗證失敗。
如何在不更改原始電子表格或導出的csv的情況下,在Postgres DB and Rails應用程序中將csv映射中的1
和0
轉換為標准布爾值true
或false
?
我將使用回調將1
或0
為true
或false
。 類似於以下內容:
before_validation :powered_to_bool
...
def powered_to_bool
self.powered = true if self.powered == 1
self.powered = false if self.powered == 0
end
驗證是在將模型保存到數據庫之前進行的,因此轉換(通常是特定於數據庫的-MySQL將存儲的布爾值與Postgres不同)永遠不會發生。
從CSV提取時和驗證之前,您可能需要使用before_validation
回調對值進行按摩。 查看ActiveRecord :: Calbacks了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.