Ransack のREADMEにあるこの方法は、ソートのリンクをクリックした際に昇順・降順どちらから始めるかを指定するだけで、クリックする前の表示順は変えてくれない。
<%= sort_link(@q, :name, 'Last Name', default_order: :desc) %>
ソートが未選択の場合の表示順を変更したい場合、コントローラーで指定する。
Sorting in the Controller · activerecord-hackery/ransack Wiki
https://github.com/activerecord-hackery/ransack/wiki/Sorting-in-the-Controller
上記のWikiでは @search
となっていますが、現在のREADMEの例に合わせて @q
を使うとこんな感じ。
@q = Post.ransack(params[:q])
@q.sorts = 'name asc' if @q.sorts.empty? # ソートが未選択の場合はnameの昇順で表示
@posts = @q.result.paginate(page: params[:page], per_page: 20)
0 件のコメント:
コメントを投稿