Rails 4 oracle增强适配器匹配数字(1)字段

时间:2013-10-04 11:35:35

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

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

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

从这个问题可以看出(rails3除了4似乎是相同的)Rails 3 datatypes?

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

正确方向的指针会很棒。

1 个答案:

答案 0 :(得分: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