2012-03-23 6 views
0

私は、関連付けを持つアプリケーションを持っており、ページを改ページします。どのように元のページへのリンクを実装する

メインオブジェクト「cat_list」のインデックスページには、関連付け「data_lists」へのリンクが表示されます。インデックスページには、 "will_paginate" 私は/ cat_lists = 3 "/ cat_lists?ページ= 3"

  • 私は "data_lists" のリンクをクリックしてください例えば、」例えば、ページの表示さ

    1. でも改ページを持っている/ 8984/data_lists "

    このインデックスページには、編集、破棄、および新規リンクを持つdata_listのリストが表示されます。 cat_listsのインデックスページへの後ろのリンク「/ cat_lists」

    機能を実装するベストプラクティスはどのようなものなのですか?

  • 答えて

    5

    I通常のセッションで履歴を記録し、その後redirect_to back(なしコロン)を介してそれを呼び出す

    def index 
        ... do your stuff ... 
        record_history 
    end 
    
    protected 
    
        def record_history 
        session[:history] ||= [] 
        session[:history].push request.url 
        session[:history] = session[:history].last(10) # limit the size to 10 
        end 
    
        def back 
        session[:history].pop 
        end 
    

    注意GETリクエストのためにこの作品だけという。

    2

    私があなたを正しく理解している場合、link_to('Back', :back)はあなたが望むものです。

    +0

    いいえ、:backオプションは、?page = 3の値を思い出しません。 – romus

    +0

    最後に要求された変更へのリンクを取得するだけなら、私は同意します: 'back'はあなたが望むものです。 'request.referrer'がなくても':back'リンクが壊れてしまうことに注意してください。 –

    0

    また、moschのアプローチも使用します。

    link_to('Back', :back)は、ブラウザの「戻る」機能のみを使用します。ヒストリーサーバー側を管理することで、より詳細な管理が可能になります(つまり、Google検索から来た場合は、何が起こるかを推測してください)。 履歴サーバー側を管理することで、ユーザーをページから離れるリンクを非表示にすることができます。さらに、複数のステップをブラウズするようにユーザーに指示することもできます(ドロップダウンを介して)。

    関連する問題