【问题标题】:MongoMapper issue with stack level being too deepMongoMapper 堆栈级别太深的问题
【发布时间】:2013-07-15 17:18:28
【问题描述】:

我只想说我在谷歌上详细搜索了这个主题,但找不到任何适用于我自己用例的内容。

我有一个简单的小广告服务器。有一个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

现在,我的模型中没有任何回调,这就是很多人发生此错误的原因。

有人有什么见解吗?

谢谢。

【问题讨论】:

    标签: mongodb sinatra mongomapper


    【解决方案1】:

    我似乎已经找到了答案。 timestamps! 是造成这种情况的原因。我在网上看到的其他示例与回调以及 ActiveSupport 运行它们的方式有关。我只是没有意识到timestamps! 算作一。

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 2013-10-05
      • 2011-11-17
      • 2012-07-24
      • 2016-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多