Railsで一覧ページの順序変更や絞り込み機能を実装

Railsアプリで、URLの末尾についた?option=Aなどのパラメータによって一覧ページの並び順や表示させるデータを変更する処理の実装する方法をまとめます。

商品の安い順や高い順などの並び順や、男性向け、女性向けなどの絞り込み機能の実装時などに使うことができます。

URLパラメータ

下記のようなパラメータのついたリンクを設置するか、入力フォームで項目を選択したらパラメータが付与されるようにします。

/?option=A
/?option=B

入力フォームでonChnageを使ってsubmitボタンを押さなくてもURLをリダイレクトする方法はこちらで紹介しています。
参考:onChangeイベントを使ってフォームの値が変更されたときに処理を実行する

順序変更や絞り込み機能

順序変更や絞り込み機能はコントローラーでパラメータ名ごとに設定します。URLに付与されたパラメータは、params[:option]で取得することができます。

def index  
        if params[:option] == "A" || params[:option] == nil
                @products = Product.all.order('created_at DESC')
        elsif params[:option] == "B"
                @products = Product.all.order('created_at ASC')
        end
end

並び替えや絞り込みも簡単に実装できてRailsは便利ですね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする