2013-09-16 45 views
0

我在许多项目中使用activerecord,但从未遇到过这种问题。 这里是我的课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插入。

是状态某种保留字吗?不幸的是我不能改变这个字段的名字。 有没有人有这样的建议/溶剂?

+0

“status”列的类型是什么?它可能不是一个整数(INT)类型? – pdobb

+1

你为什么要把'$ rdms_3ondon_table'声明为全局变量?这真的很奇怪。 – tadman

+0

状态的类型是数字,我使用全局,因为我不能在activerecord类中使用我的配置hash @conf ['rdms_3ondon_table'],所以我把它分配给一个全局变量 – peter

回答

0

找到它。 oracle表格中字段状态的精确度为1,在这种情况下,activerecords像布尔字段一样处理它(0 = false,1 = true),我的值4被忽略。 我把精度提高到了6(不知道关于这个的规则),现在插入工作正常。

这是一个activerecord中的错误?我不知道......