0

このトピックを詳しくグーグルで検索しましたが、自分のユースケースに当てはまるものは何も見つかりませんでした。

シンプルで小さな広告サーバーがあります。のモデルとAd、 と と呼ばれる 2 つの組み込みモデルが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

現在、モデルにはコールバックがありません。これが、多くの人にこのエラーが発生する理由です。

誰にも洞察がありますか?

ありがとう。

4

1 に答える 1

0

答えにたどり着いたようです。これtimestamps!が原因でした。私がオンラインで見た他の例は、コールバックと、ActiveSupport がそれらを実行する方法に関するものでした。timestamps!私はそれが1つとしてカウントされることに気づきませんでした。

于 2013-07-15T17:23:19.200 に答える