【问题标题】:Rails 4 oracle enhanced adapter matching number(1) fieldsRails 4 oracle 增强适配器匹配号(1) 字段
【发布时间】:2013-10-04 11:35:34
【问题描述】:

我有一个legacy db,我正在其上构建一个rails 4 应用程序。

在我的 db 架构 中有相当多的字段具有单个数字的非布尔数字(如 1-9),其中使用了 Number(1) 的数据类型。但是,oracle 适配器会自动假定数据类型 number(1) 始终为布尔值。

从this question可以看出(rails3旁边4似乎是一样的)Rails 3 datatypes?

我试图在 o.e.a. 上找到一个选项。 github页面但是我找不到。

指向正确方向的指针会很棒。

【问题讨论】:

标签: ruby-on-rails oracle ruby-on-rails-3.2 oracle11g ruby-on-rails-4


【解决方案1】:

来自https://github.com/rsim/oracle-enhanced/issues/338

这是默认行为,您也可以根据需要禁用。

https://github.com/rsim/oracle-enhanced/blob/master/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb#L109-L117

  ##
  # :singleton-method:
  # By default, the OracleEnhancedAdapter will consider all columns of type <tt>NUMBER(1)</tt>
  # as boolean. If you wish to disable this emulation you can add the following line
  # to your initializer file:
  #
  #   ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_booleans = false
  cattr_accessor :emulate_booleans
  self.emulate_booleans = true

【讨论】:

  • 好吧,至少关掉它很容易。
猜你喜欢
  • 2012-09-30
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 2020-04-24
相关资源
最近更新 更多