2

このアクションは機能しません:

redirect_to request.referer, :format => "html", :alert => exception.message

コントローラー アクションから js 形式でリダイレクトする場合、リダイレクトも html 形式ではなく js になります。

理由はありますか?どうも!

PS: :format => :html も試しました

完全性のために編集

リダイレクトは、この application_controller メソッドによる cancan の自動化の後に発生します

   if request.referer
      logger.debug "Rescueing Cancan"
      redirect_to request.referer, :format => :html, :alert => exception.message
    else
      redirect_to root_path, :alert => exception.message, :format => :html
    end
  end

これは私のログです:

Started GET "/challenges/ground-floor/tasks" for 127.0.0.1 at 2012-12-06 11:17:06 +0100
Processing by ChallengesController#tasks as JS
  Parameters: {"id"=>"ground-floor"}
  Projectmilestone Load (0.6ms)  SELECT "projectmilestones".* FROM "projectmilestones" WHERE "projectmilestones"."id" = 790 LIMIT 1
Rescueing Cancan
Redirected to http://127.0.0.1:3000/challenges/ground-floor?subaction=pmdocuments&page=1
Completed 302 Found in 105ms (ActiveRecord: 1.6ms)


Started GET "/challenges/ground-floor?subaction=pmdocuments&page=1" for 127.0.0.1 at 2012-12-06 11:17:06 +0100
Processing by ChallengesController#show as JS
4

1 に答える 1

2

のように使用:backしてみてください

redirect_to :back, alert: exception.message

ドキュメントからredirect_to

:back- リクエストを発行したページに戻ります。複数の場所からトリガーされるフォームに役立ちます。の省略形redirect_to(request.env["HTTP_REFERER"])

于 2012-12-06T10:11:55.193 に答える