2013-07-15 165 views
0

只是想開始說我沒有做過這個話題的谷歌,並且無法找到適用於我自己的用例的任何東西。MongoMapper問題與堆棧級別太深

我有一個簡單的小廣告服務器。沒有爲Ad一個模型,兩個嵌入式型號叫ImpressionClick - 像這樣:

class Ad 

    include MongoMapper::Document 

    key :name, String 
    key :image, String 
    key :url, String 

    has_many :clicks 
    has_many :impressions 

end 

class Click 

    include MongoMapper::EmbeddedDocument 

    key :ip, String 
    timestamps! 

end 

class Impression 

    include MongoMapper::EmbeddedDocument 

    key :ip, String 
    timestamps! 

end 

這裏是我得到的錯誤:

SystemStackError - stack level too deep: 
/home/deployer/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/keys.rb:194 

這是,這是該地區發生在:

@ad.impressions << Impression.new({:ip => request.ip}) 
@ad.save 

現在,我的模型中沒有任何回調,這是很多人發生這種錯誤的原因。

任何人有任何見解?

謝謝。

回答

0

我似乎已經找到答案。 timestamps!是造成這種情況的原因。我在網上看到的其他例子與回調以及ActiveSupport運行它們的方式有關。我只是沒有意識到timestamps!算作一個。