0

コントローラーを介したライブ更新用にFayeの上に構築されたgemであるPrivate Pubを使用しています。Faye サーバーがサービスを提供できなかった場合に備えて、Live Update Render のフォールバックを行うことができずに困っています。

最初のレンダリング メソッドが失敗した場合、この状況を回避して 2 回目にレンダリングする方法はありますか?

これが私のcreate行動です:

  def create
    #assigning objects and such happening here

    begin
        LiveAjaxRender(@comment)
    rescue => exception
        ExceptionNotifier.notify_exception(exception)

        normalAjaxRender(@comment)
    end # end rescue
  end

通常、エラーが発生すると、2 番目のブロックに進み、最初のブロックは無視されます。ここではそうではありませんが、それは次のように言っているからです:

AbstractController::DoubleRenderError発生しましたuser_comments#create:

このアクションでレンダリングやリダイレクトが複数回呼び出されました。render または redirect のみを呼び出すことができ、アクションごとに最大 1 回しか呼び出せないことに注意してください。また、redirect も render もアクションの実行を終了しないことに注意してください。そのため、リダイレクト後にアクションを終了する場合は、「redirect_to(...) and return」のようなことを行う必要があります。app/controllers/my_controller.rb130:in `ブロック (2 レベル) in normalAjaxRender'

4

1 に答える 1

0

レンダリングの冗長性を避けるために、これは私がしたことです:

normalAjaxRender()メソッドをデフォルトとして設定し、追加したJSファイルrescueliveupdate

于 2014-06-02T22:00:46.843 に答える