我对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中删除它解决了我的问题。