###前提・実現したいこと
ツイッターライクなマイクロソフトを投稿できるサービスを作成しています。
Railsアプリケーションで発生しているタイトルのエラーを解消したいと思っています。
Rails 4.2.2
Ruby 2.0.0
で開発をしています。
###発生している問題・エラーメッセージ
下記のエラーが発生しています。
SystemStackError (stack level too deep): .bundle/gems/actionpack-4.2.2/lib/action_dispatch/middleware/reloader.rb:79
エラーは下記の画像の画面で、「POST」ボタンをタップした時に発生します。
以下、「POST」ボタンをタップした時のエラーを含めたログです。
Started POST "/microposts" for ::1 at 2016-11-26 15:36:03 +0900 ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations" Processing by MicropostsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"*****", "micropost"=>{"content"=>"テスト"}, "commit"=>"Post"} Completed 500 Internal Server Error in 11ms (ActiveRecord: 0.0ms) SystemStackError (stack level too deep): .bundle/gems/actionpack-4.2.2/lib/action_dispatch/middleware/reloader.rb:79
###該当のソースコード
マイクロポストのcontorollerは下記のように設定したいます。
ruby
class MicropostsController < ApplicationController before_action :logged_in_user, only: [:create, :destroy] before_action :current_user, only: :destroy def create @micropost = current_user.microposts.build(micropost_params) if @micropost.save flash[:success] = "Micropost created!" redirect_to root_url else @feed_items [] render 'static_pages/home' end end def destroy @micropost.destroy flash[:success] = "Micropost deleted" redirect_to request.referrer || root_url end private def micropost_params params.require(:micropost).permit(:content, :picture) end def current_user @micropost = current_user.microposts.find_by(id: params[:id]) redirect_to root_url if @micropost.nil? end end
###試したこと
まず、エラーに記載されている該当箇所をコメントアウトしてみました。
エラーに記載されている該当箇所のメソッドは下記のようにしています。
def call(env) @validated = @condition.call prepare! response = @app.call(env) response[2] = ::Rack::BodyProxy.new(response[2]) { cleanup! } response rescue Exception cleanup! raise end def prepare! #:nodoc: run_callbacks :prepare if validated? end def cleanup! #:nodoc: run_callbacks :cleanup if validated? ensure @validated = true end private def validated? #:nodoc: @validated end end
結果、エラーに変化がなかったので、下記のURLを参考にしてrmagickのgemを追加し、bundle installしてみました。
http://stackoverflow.com/questions/22206350/stack-level-too-deep-when-using-carrierwave-versions
こちらもエラーに変化ありませんでした。
その他必要な情報あればフィードバックいただけると助かります!
まだ回答がついていません
会員登録して回答してみよう