0
也許我失去了一些東西,但我做了研究,並找不到爲什麼這是表現得像它一樣。我正在使用Rails 2.3.16和ruby 1.9.3,並由一個巨大的ibm-db2作爲後盾。Rails控制檯:屬性返回false,但用to_yaml正確顯示
讓我們假設我有一類Foo(我想在這裏建一個簡單的例子)
class Foo < ActiveRecord::Base
end
該類具有的屬性:電話(整數)和電子郵件(字符串)。如果我嘗試使用消氣方法來獲取phone
-attribute
f = Foo.find_by_phone(123)
=> #<Foo phone: false, mail: "[email protected]">
:
當我使用Rails的控制檯來調試
bundle exec ./script/console , or
RAILS_ENV=production bundle exec ./script/console
我可以通過執行加載的Foo實例:
f.phone
=> false
但是信息必須存在,因爲導軌i)發現ob JECT和ii)你可以這樣做YAML輸出:對我的幫助提前
y f
---- !ruby/object:Foo
attributes:
phone: 123
mail: [email protected]
attributes_cache: {}
謝謝你們,我敢肯定,我忽略了的東西!
'Foo.phone_before_type_cast'看起來是什麼樣,表的模式是什麼樣子? – Doon 2013-04-20 17:29:41
你的課堂中是否有attr_accessor手機? – megas 2013-04-20 17:31:14
@Doon:NoMethodError:未定義方法'phone_before_type_cast'for ... @megas:兩者都不適用。我嘗試添加attr_accessor:phone,然後f.phone返回nil,而yaml版本保持不變。 – user2302360 2013-04-20 17:56:21