👏

ソート機能的なやつ

2024/03/14に公開

内容

PF作成の時にメンターさんに教えて頂いたことをいつもで引き出せるように書いておこうと思います。
表示のON/OFF切り替えたい時に使えます。

index.html.erb

    :
    <span><%= link_to "勉強中", sort_path(sort_type: 'now')%></span>
    <span><%= link_to "スタンバイ", sort_path(sort_type: 'stay')%></span>
    <span><%= link_to "完了済み", sort_path(sort_type: 'finish')%></span>
    :
    :
    <% @studies.each do |study| %>
        :
        :
    <% end %>

"sort"へのリンクを用意します

routes.rb

    :
get "sort", to: "studies#sort"
    :

"sort"へのルーティングを設定します

studies_controller.rb

    :
  def sort
    sort_type = params[:sort_type]
    user_studies = current_user.studies
    statuses = Study.statuses

    case sort_type
      when 'now'
        @studies = user_studies.where(status: statuses[:勉強中])
      when 'stay'
        @studies = user_studies.where(status: statuses[:スタンバイ])
      when 'finish'
        @studies = user_studies.where(status: statuses[:完了済み])
    end

    render "index"
  end
    :

リンクから受け取った"sort_type"に応じて、@studiesの中身をwhereメソッドで絞り込んでます

まとめ

ja.ymlファイルへの日本語定義をまだしてないため、statusカラムを日本語で書いてます。
これもゆくゆくはやりたいことなので、また記事にまとめたいと思います。

Discussion