ruby-on-rails - 导入 Rails 的 boolean 值

标签 ruby-on-rails postgresql activerecord csv boolean

我有一个 .numbers 电子表格,其中包含我导出为 csv 的原始数据,并使用自定义导入工具将该数据导入我的 Rails 应用程序。我在 Numbers 中有一些列,我只需输入 10 来指示 boolean 字段。

我在我的一个模型上验证了以下行:

  validates :powered,
    inclusion: [true, false]

由于导入的值是 1,我正在检查该值是否针对 truefalse 进行验证,那么这显然不是验证,并且失败。

如何在不更改原始电子表格或导出的 csv 的情况下,将 10 从 csv 映射到标准 boolean 值 truefalse 在我的 Postgres DB 和 Rails 应用程序中?

最佳答案

我会使用回调将 10 转换为 truefalse。类似于以下内容:

before_validation :powered_to_bool
...

def powered_to_bool
  self.powered = true if self.powered == 1
  self.powered = false if self.powered == 0
end

关于ruby-on-rails - 导入 Rails 的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220072/

相关文章:

php - Javascript 代码在 Ubuntu/Firefox 中不起作用 - php/postgresql

python - Django authenticate() 重置密码

ruby-on-rails - 在不同的 Rails 应用程序之间共享 ActiveRecord 模型和数据的最佳方式?

php - codeigniter 中的多个 where() 调用或关联数组

ruby-on-rails - 如何使用 Mechanize gem 抓取图像的图标链接

ruby-on-rails - 使用 rails gem geokit 按距离和分页排序?

postgresql - 使用 Chef postgresql 安装 PostgreSQL 9.2

activerecord - Rails `NOT IN (null)` 不返回任何结果

ruby-on-rails - 应用程序布局中的 Rails 条件侧边栏

ruby-on-rails - 在 Rails 上使用机架超时 gem