0

也许我遗漏了一些东西,但我做了研究,无法找出为什么会这样。我正在使用 Rails 2.3.16 和 ruby​​ 1.9.3,由一个巨大的 ibm-db2 支持。

假设我有一个类 Foo (我试图在这里建立一个简短的例子)

class Foo < ActiveRecord::Base
end

该类具有属性:电话(整数)和邮件(字符串)。

当我使用 Rails 控制台进行调试时

bundle exec ./script/console      , or
RAILS_ENV=production bundle exec ./script/console

我可以通过执行以下操作加载 Foo 实例:

f = Foo.find_by_phone(123)
=> #<Foo phone: false, mail: "test@example.org">

如果我尝试使用 getter-method 来获取phone-attribute:

f.phone
=> false

但是信息必须在那里,因为 rails i) 找到了对象并且 ii) 您可以执行以下 yaml 输出:

y f
---- !ruby/object:Foo
attributes: 
 phone: 123
 mail: test@example.org
attributes_cache: {}

感谢大家提前帮助我,我确定我忽略了一些东西!

4

1 回答 1

0

问题似乎是,ActiveRecord 将 DB2 短类型解释为布尔值。是否有可能改变这种(愚蠢的?)行为?

于 2013-04-29T20:29:45.540 回答