Tag: 无限循环

active_scaffold挂起无限循环

我正在尝试在我的Rails(3.0,ruby 1.8.7)项目中使用active scaffold (3.0.26)。 我在页面上添加了一个简单的招标: ‘users’, :constraints => {:gender => “male”}%> 当我进入该页面时,应用程序启动无限循环。 消耗越来越多的资源,唯一的解决方案是kill -9服务器进程。 感觉这是一个基本错误,但我不知道,我做错了什么。 你可以帮帮我吗?

为什么Ruby的循环命令比true更慢?

Ruby有一个内置的loop命令,可以永久地执行它后面的块(或直到中断为止)。 但是,当它与function上相似while true ,它会明显变慢: require “benchmark/ips” NUMBER = 100_000_000 def fast index = 0 while true break if index > NUMBER index += 1 end end def slow index = 0 loop do break if index > NUMBER index += 1 end end Benchmark.ips do |x| x.report(“While Loop”) { fast } x.report(“Kernel loop”) { slow […]

Ruby 1.9.2中机架级的SystemStackError,而不是1.8.7

我被引入遗留代码库,将它从Rails 2.4 / Ruby 1.8.7升级到Rails 3.1 / Ruby 1.9.2。 在这样做的过程中,我发现了一个非常有趣的问题,需要花费3天才能弄明白。 我想把它放在这里,为其他人看到问题给它一些谷歌果汁,并提出问题: 为什么? 基本上,我在运行我的应用程序时在Rack级别看到了SystemStackError 。 在错误发生之前我无法获得任何请求,并且因为我的代码从未被触及而无法调试它。 在开发模式下,我可以看到很多站点,然后在数据库被命中时突然得到SystemStackError 。 所以我认为这是一种懒惰加载。 切换到生产模式,第一个请求发生exception。 服务器正常启动,但没有请求通过,我的代码没有被触及。 快进太多小时,我跟踪回溯到Rails中的循环( 完整要点 ): /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_dispatch/routing/url_for.rb:102:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_controller/metal.rb:140:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/rendering.rb:74:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/layouts.rb:301:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_dispatch/routing/url_for.rb:103:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_controller/metal.rb:140:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/rendering.rb:74:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/layouts.rb:301:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_dispatch/routing/url_for.rb:103:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_controller/metal.rb:140:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/rendering.rb:74:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/layouts.rb:301:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_dispatch/routing/url_for.rb:103:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/action_controller/metal.rb:140:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/rendering.rb:74:in `initialize’ /Users/john/.rvm/gems/ruby-1.9.2-p320@qstream-ruby19/gems/actionpack-3.1.6/lib/abstract_controller/layouts.rb:301:in `initialize’ […]