What have you found for these years?

2009-01-07

DataMapper 地雷

class Pet
include DataMapper::Resource
property :id, Serial
property :model, String
end

Pet.first # stack level too DEEP!

因為原本的 Pet#model 是不能被改寫的,現在變成 property 就爆炸。
解決辦法:

property :_model, String, :field => 'model'

.......有點笨!

還是搞半天才想到是這問題!之前曾經用到 object_id, 當然也是死...
不過因為這本來就是 ruby 的 method, 看一下就知道原因了。
這 model 可就不是了... 這可不是改寫 :send 可以比擬的,
:send 本來就不應該被改寫,這是基本常識...

2 retries:

Plumm said...

沒想到碰到地雷的機率還真高 @@

Lin Jen-Shin (godfat) said...

好市多魔 :s

Post a Comment

Note: Only a member of this blog may post a comment.



All texts are licensed under CC Attribution 3.0