Rails控制台:属性返回false,但是使用to_yaml正确显示

时间:2013-04-20 17:21:29

标签: ruby-on-rails db2 rails-activerecord ruby-on-rails-2

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

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

class Foo < ActiveRecord::Base
end

该类具有以下属性:phone(整数)和mail(字符串)。

当我使用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 - 属性:

f.phone
=> false

但信息必须在那里,因为rails i)找到了对象而ii)你可以做yaml-output:

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

谢谢你们提前帮助我,我确信我忽视了一些事情!

1 个答案:

答案 0 :(得分:0)

问题似乎是,ActiveRecord将DB2 short类型解释为boolean。是否有可能改变(愚蠢?)行为?