0

我在许多项目中使用 activerecord,但从未遇到过此类问题。这是我的课

class Ondon < ActiveRecord::Base
  self.table_name    = $rdms_3ondon_table
  self.sequence_name = $rdms_3ondon_sequence
end

我创建了这样的记录

Ondon.create(:nr=>member.nr,
               :dossier_nr=>dosnr,
               :cre_dt=>Time.now, 
               :rowversion=>1,
               :status=>4
               )

但无论我为创建提供什么值,为状态插入的值始终为 0。其他字段插入正常。

当我激活调试器时,会在 sql 中看到值 0 被插入。

status 是某种保留字吗?不幸的是,我无法更改此字段的名称。有人对此有建议/解决方案吗?

4

1 回答 1

0

找到了。oracle 表中类型为 number 的字段状态的精度为 1,在这种情况下,activerecords 将其处理为布尔字段(0=false,1=true),我的值 4 被忽略了。我将精度提高到 6(不知道规则),现在插入工作正常。

这是 activerecord 中的错误吗?我不会知道..

于 2013-09-25T14:36:39.287 回答