SystemStackError(堆栈级别太深):在rails中上传图像时出错

时间:2013-03-20 07:11:05

标签: iphone ios ruby-on-rails ruby-on-rails-3 paperclip

我正在研究ROR并向IOS app提供api。在此应用中,IOS用户将图像上传到Rails应用。我正在使用paperclip gem。在运行bundle update命令之前,这工作正常。现在我收到了这个错误:

SystemStackError (stack level too deep):
 actionpack (3.2.3) lib/action_dispatch/middleware/reloader.rb:70

My Gemfile如下所示:

gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'paperclip', '~> 3.0'
gem 'activerecord-import', '>= 0.2.0'
gem 'execjs'
gem 'therubyracer'

IOS开发人员在上传到Rails App之前使用Base64对图像进行编码。我的Rails应用使用此方法解码photo_data

def decode_photo_data
    data = StringIO.new(Base64.decode64(self.photo_data))
    self.photo = data 
end

这一切都运行正常,但我不知道是IOS bug还是Rails bug。如果它是Rails bug,它与回形针或其他东西有关。请帮忙。

1 个答案:

答案 0 :(得分:0)

好的,我得到了解决方案。我发现这是一个回形针错误。自从我运行bundle update命令后,它下载了一个新的回形针版本paperclip-3.4.1,但在bundle updatebundle install之前它正在使用paperclip-3.3.1,所以现在我将我的Gemfile更新为这个:

gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'paperclip', '~> 3.3.1'    

它开始在我的情况下再次工作。现在没有错误。