【发布时间】:2013-07-15 17:18:28
【问题描述】:
我只想说我在谷歌上详细搜索了这个主题,但找不到任何适用于我自己用例的内容。
我有一个简单的小广告服务器。有一个Ad 的模型,还有两个称为Impression 和Click 的嵌入式模型——就像这样:
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
现在,我的模型中没有任何回调,这就是很多人发生此错误的原因。
有人有什么见解吗?
谢谢。
【问题讨论】:
标签: mongodb sinatra mongomapper