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は便利ですね。