问题标签 [stack-level]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 如何获取当前堆栈级别
我可以在 Ruby 中获得当前的堆栈级别吗?
目前我使用caller.size
哪个没问题,但看起来不是原生的
ruby-on-rails - Rails 2.3.5 中的堆栈级别太深
我收到这样的错误
异常跟踪:
不知道为什么会这样。搜索了很多,发现很多人都有这个错误。但不确定为什么会这样。
我的 authlogic 插件版本 2.1.6
我在不同的情况下得到同样的错误
在另一种情况下,它就像:
谁能解释一下这个问题的根本原因。我无法弄清楚,这究竟是什么原因。
ruby - Ruby中的堆栈级别太深,试图随机抽取一张卡片
运行下面的代码时出现错误“堆栈级别太深”。如果随机选择的卡不存在,它会选择另一张随机卡。我想我应该以某种方式尝试代码,但我不确定如何。有什么建议么?
ruby - Ruby堆栈级别太深异常不是来自递归无限循环
编辑:(已解决)实际上它可能是因为无限循环而引发的
我正在编码,在添加了一个方法后我得到了这个:
我很确定不涉及无限递归循环。
该代码现在以某种方式进行了宝石化,但我也直接运行 ruby 文件时遇到了错误。
感谢您对如何(获取一些信息,运行一些测试)解决问题的任何帮助,如果可能的话,无需重写整个事情......
环境 :
- ruby 1.9.3p194 / rails 3.2.8,通过 rvm 安装
- 此阶段的程序仅使用 rails 字符串屈折函数
- 操作系统:linux kubuntu i386
- 记忆4GO
- 'ulimit -s' : 8192(堆栈大小以 kB 为单位)
我尝试失败的方法:
- 删除了最初引发异常的代码块,但在运行时稍后仍会引发异常
- 使用命令行“ulimit -s 20000”、“ulimit -s unlimited”设置堆栈大小。同样的错误,显然在同一个地方(这让我认为堆栈大小实际上并没有改变)
- 降级到 ruby1.9.2 / rails3.1.3,得到同样的信息
- Windows下同样的错误
应用上下文:
我正在编写一个大量使用 ruby mixins 的应用程序。
此外,我创建了一堆生成 mixin 的类(实例/类方法模块将被其他类包含)。
所以总而言之,我最终得到了相当多的生成命名模块和一些自定义生成的代码,以及具有许多祖先的类。
但是,当我编写位于这个库之上的程序时,这最终应该会为我在 as$ 中节省相当多的痛苦(无论如何这是计划)。
我使用的资源:
- 如何增加 ruby 应用程序的堆栈大小。递归应用程序获取:堆栈级别太深(SystemStackError)
- http://dalibornasevic.com/posts/5-ruby-stack-level-too-deep-systemstackerror
编辑:在某些代码可用于显示/测试之前,让我们将我的问题抽象到这一点:除了经典的程序执行树太深场景(交叉手指很清楚,意味着什么......)?
ruby-on-rails-3 - Rails has_many 和 belongs_to 在同一模型上
我有一个学校模型 has_many :users。但是,每所学校也有一个primary_user。这是我的模型:
这在我的生产和开发应用程序中运行良好,但在测试时会在 FactoryGirl 中引发堆栈级别错误。这些关联对我来说很糟糕,并且测试中的堆栈级别错误向我表明可能有更好的方法。
有没有更好的办法?...任何想法为什么 FactoryGirl 正在苦苦挣扎?
我的工厂
堆栈跟踪
因此,错误源于第三个模型 Userdoc。当工厂创建一个 Userdoc 时,它会创建一个用户,.. 用户必须属于一所学校,以便工厂也创建一个学校。但是,当学校工厂被触发时,由于 primarycontact 关联,它也会尝试创建用户。
ruby-on-rails - 仅在生产中随机堆栈级别太深
我的生产环境经常抛出堆栈级别太深的错误。整个事情就是生活,你可以在这里看看:
第一次它可能会工作,但在第二次或第三次刷新后,您很可能会收到 500 错误。日志只说:
而已。没有其他的。我的 gemfile.lock:
当我尝试在我的 production.rb 中打开 cache.classes = true 时,我在第一次请求后立即收到堆栈级别太深的错误,但在不同的位置:
即使对于目前不使用任何回调或任何过滤器的静态页面控制器也是如此。所以我不知道该怎么办。我还不如丢弃整个项目,因为它正遭受无法修复的错误。
开发工作得很好。没有错误。
我试过 ruby 2.0.0-p0, 2.0.0-p244, 1.9.3-p224, 1.9.3-p448 没有区别。我尝试升级/降级导轨,但没有成功。
ruby - (另一个)Ruby 中的堆栈级别太深
我在自身内部调用一个方法(递归循环),我很感激一些文字、方法或更正的代码来解决这个问题。
代码:
IRB 输出:
ruby-on-rails - 堆栈级别太深,可能递归但不确定
我收到一个Stack Level too deep
错误,我认为这与以下代码有关,但我不确定如何修复它:
有什么想法吗
ruby-on-rails - Ruby on Rails 3:1x 循环方法返回堆栈级别太深
总而言之,我有一个blog_posts
控制器。控制器主要blog_posts
用作普通 CRUD。但是,在模型中,我记录state
了blog_posts
. 所以用户可以发布一个条目,但它不会处于Active 状态,这意味着没有人可以查看它。一旦他们将状态更改为Active,就可以查看它,因此建议blog_post
保持静态并且用户不要更新它,但是,我们仍然允许更新,并带有警告。
所以,我的任务是创建一个warning
防火墙页面。当用户单击Activeedit
时,应出现警告页面,然后他们必须单击继续或返回。 blog_post
我的代码如下所示:
这就是我相信它的工作方式。
- 用户导航到活动帖子的 blog_post 编辑页面。
- 编辑控制器看到帖子处于活动状态,并且用户没有接受警告,并重定向到警告页面。(Is Active 和 editing_after_active 都评估为 true)
- 在警告页面上,有两个选项(是/否)。
- 用户单击是继续。editor_after_active 属性应该设置为“yes”,这意味着他们已经接受了警告。
- 他们被重定向到编辑。
- 再次评估标准,但这一次,它评估为假。
- 呈现编辑页面。
我在这里想念什么?堆栈级别太深应该用于无限循环。这个循环是无限的吗?
更新:
更新:
更新:
好的,在警告页面上,我尝试渲染 <%= @blog_post.editing_after_active %> 的当前值,但仅仅因为尝试渲染该值而导致堆栈级别太深。因此,错误最有可能与设置虚拟属性有关。
我像这样手动设置editing_after_active的值: def editing_after_active "yes" end
有了这个警告表单提交就好了。所以,需要弄清楚为什么原来的设置是递归的。
ruby-on-rails-3 - 在 Rails3 上的 ElasticBeanstalk Ruby2.0 上编译 javascript 文件时堆栈级别太深
我正在尝试将我们的 Rails3 应用程序从运行 Ruby 1.9.3 的旧 ElasticBeanstalk 环境迁移到运行 Ruby 2.0 的新环境。
一切似乎工作正常,除了资产预编译 javascript 文件上的“堆栈级别太深”错误(css 编译运行良好)。它在我安装了相同 Gems 的笔记本电脑上运行良好。下面是堆栈跟踪,任何建议都会有所帮助。提前致谢。