2

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

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

从this question中可以看出(rails3旁边4似乎是一样的)Rails 3数据类型?

我试图在 oea github 页面上找到一个选项,但是我找不到。

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

4

1 回答 1

2

来自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
于 2013-10-04T14:44:39.330 回答