簡體   English   中英

布爾值導入到Rails

[英]Boolean values import to Rails

我有一個包含原始數據的.numbers電子表格,我將其導出為csv,並使用自定義的導入工具將數據導入到我的Rails應用程序中。 我在Numbers中有一些列,我只需輸入10來表示一個布爾字段。

以下是我對其中一個模型的驗證行:

  validates :powered,
    inclusion: [true, false]

由於要導入的值為1並且我正在檢查該值是否針對truefalse進行驗證,因此這顯然不是驗證失敗。

如何在不更改原始電子表格或導出的csv的情況下,在Postgres DB and Rails應用程序中將csv映射中的10轉換為標准布爾值truefalse

我將使用回調將10truefalse 類似於以下內容:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM