2011-01-06 6 views
5

私のアプリケーションのリストビューからは、レコードのリストを表示したり、ドリルダウンしてレコードを編集/更新することができます。更新後、中間ページをバイパスしてリストビューに直接戻りたいですが、私は単純にlink_to(:action => list)にしたくありません。ページネーションが含まれています。私は私が来た正確な「リスト」ページに戻って行きたいです。何が最善の方法ですか?隠れたargをページ番号のどこかに渡しますか?これを達成するエレガントな方法はありますか?2レベルに戻るには?

答えて

7

私は、セキュリティ上の考慮事項や既存の宝石があるかもしれないという免責事項とともに、この1つをそこに投げるつもりです。

編集操作では、前のページをセッションに保存できます。それからあなたの更新アクションで、それにリダイレクトしてください。

class MyController < ApplicationController 

    def edit 
    session[:prev_url] = request.referer 
    end 

    def update 
    redirect_to session[:prev_url] 
    end 

end 
2

セッションを使用する代わりに、非表示のフォームフィールドを使用してリファラーを実行することもできます。

class MyController < ApplicationController 

    def edit 
    @prev_url = request.referer 
    end 

    def update 
    redirect_to params[:prev_url] 
    end 

end 

hidden_fieldを使用してフォーム:

f.hidden_field :prev_url, :value => @prev_url 

あなたはまた、代わりにページパラメータと同じことを行うとしてURLにパラメータを追加することができ、全体リファラURLに沿って実行したくない場合updateアクション。私はまた、RailsのURLヘルパーがパラメータを受け入れることを期待しています。

関連する問題