1

Rails 3.2.1を実行し、Rails 3レスポンダーとレスポンダーgemで利用可能なフラッシュレスポンダーを使用していました:https ://github.com/plataformatec/responders

一部のコントローラーアクションでは、常に前のURLにリダイレクトしたいのですが、オブジェクトが作成されているかどうかに関係なく、フラッシュメッセージを表示します。次のようになります。

class MyController < ActionController::Base
  responders :flash
  respond_to :html

  def create
    @my_object = MyObject.create(params[:my_object])
    respond_with @my_object do |format|
      format.html { redirect_to :back }
    end
  end
end

これはrails3.2.1で正常に機能しますが、3.2.2で機能しなくなったようです。ブロックを取得するときに、respond_withがどのように機能するかについていくつかの変更があったようです。具体的には、このパッチ:https ://github.com/rails/rails/pull/4870/files

これと同じ動作を実現し、フラッシュレスポンダーを使用してフラッシュメッセージを設定する方法があるかどうか疑問に思いました(手動で行う必要はありません)。

4

2 に答える 2

0

Rails3.2.2のバグであることが判明https://github.com/rails/rails/pull/5299

于 2012-03-06T15:09:59.963 に答える
0

常にリダイレクトを実行し、それをコントローラーに含めるには、独自のレスポンダーを作成する必要があります。

レスポンダーはRack::Middlewareのようなものです。あなたはそれを蓄積することができます。

于 2012-03-02T08:36:33.187 に答える