升级到Rails 3.2.8会导致ActiveRecord的堆栈级别太深错误

时间:2012-09-09 20:27:30

标签: ruby-on-rails ruby activerecord ruby-on-rails-3.2

我对Ruby很新,但我遇到的问题是我无法深入了解问题。

我的简单应用程序工作正常然后,在将Rails版本升级到3.2.8后,我在尝试查询数据库中的记录时遇到了问题。这在使用Rails 3.0.7时工作正常,但在升级到rails 3.2.8后,它开始失败并出现Stack Level太深的错误。

我的模型看起来像这样:

class Resource < ActiveRecord::Base 
  validates :title, :presence => true, 
                    :length => { :minimum => 5} 
  validates :link,  :presence => true 
  validates :date_submitted,  :presence => true 

  has_many :comments 

  validates_format_of :link, :with => URI::regexp(%w(http https)) 
  validates :link, :uniqueness => {:scope => :link, :message => "This item has already been submitted"} 
end 

当我从控制台调用Resource.all时,会因以下错误而失败:

  

SystemStackError:堆栈级别太深了   /home/tom/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/irb/workspace.rb:80   也许IRB bug !!

它似乎也与其他型号一起发生,并且在升级之前这种工作正常的事实似乎表明它是另一回事。有没有人对我应该在哪里有任何想法 - 错误信息非常有限。

更新:在进行更多挖掘后,这似乎在更改为Rails 3.2.1时开始破坏。 Rails 3.2.0及更低版本 - 我的应用程序工作正常 - 3.2.1或更高版本导致堆栈级别太深问题。

更新2:发现问题。我正在使用造成问题的SearchLogic宝石。从GemFile中删除它解决了我的问题。

0 个答案:

没有答案