1

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

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

我的 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开发人员Base64用于在上传到 Rails 应用程序之前对图像进行编码。我的 Rails 应用程序使用这种方法来解码photo_data

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

这一切都很好,但我不知道是 IOS 错误还是 Rails 错误。如果是 Rails 错误,它是否与回形针或其他东西有关。请帮忙。

4

1 回答 1

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'    

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

于 2013-03-20T09:08:30.000 回答