ruby-on-rails - activesupport 回调中的堆栈级别太深

标签 ruby-on-rails ruby activerecord stack-trace activesupport

我在 Rails 3 应用程序中收到 SystemStackError

我拥有的所有信息都是无用的一行堆栈跟踪(从日志中获取):

SystemStackError (stack level too deep):
  activesupport (3.2.3) lib/active_support/callbacks.rb:409

所以问题是我如何查看完整的堆栈跟踪

注意:我不关心为什么会发生这种情况,我只想知道它发生在何处

使用:Rails 3.2.3,Unicorn。

谢谢。

最佳答案

如果您在 before_save 或 after_save 中更新事件记录,它将继续循环.... 此外,如果您在关联的两端都有 validates_associated。

下面是一个 before_save 回调如何创建循环的示例:

class Foo < ActiveRecord::Base
  def before_save
    self.update_attribute(:bar, 'badidea')
  end
end

关于ruby-on-rails - activesupport 回调中的堆栈级别太深,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10424040/

相关文章:

ruby-on-rails - Rails shopify/stripe/braintree/twilio webhooks 在本地主机上测试

ruby-on-rails - 具有方法值比较的 Rails 作用域

ruby - 两个连接表的续集模型

php - 查询改进: foreach

ruby-on-rails - 使用 SSL/HTTPS 时返回远程 IP 为 127.0.0.1

ruby-on-rails - 通过 jQuery Ajax 发布到自定义 Controller 方法不起作用

ruby-on-rails - Rails 应用程序中对/etc/localtime 的过多 stat 调用

ruby - 如何使用散列多个键生成组合值字符串 ruby

mysql - 启用 local-infile 以将数据从 rails 加载到远程 mysql

mysql - Rails 连接表呈现错误的 sql