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 updateまたはbundle 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 に答える