LoginSignup
0
0

More than 1 year has passed since last update.

active_hashで保存した都道府県の検索機能について(ransack使用)

Posted at

ransackを用いた検索機能実装

今回は、現在作成しているSNSアプリでransackを使用して、登録されているユーザーの一覧ページから登録地域で絞り込みをする機能を作成していました。
その中で、色々エラーで躓いたため学習用に投稿しておこうと思います。

gemのインストール

gem 'ransack'

コントローラーの変更

class UsersController < ApplicationController

  def index
    @users = User.paginate(page: params[:page])  
     @q = User.ransack(params[:q])
     @users = @q.result(distinct: true)
     @user_prefecture_id = Prefecture.all
  end

end

viewの設定

<%= search_form_for @q do |f| %>
  <%= f.label :prefecture_id, "活動地域" %>

  <%= f.collection_select :prefecture_id_eq, @user_prefecture_id,:id,:name,include_blank: '地域絞り込み' %>

  <%= f.submit %>
<% end %>

フォームの記述

<%= f.collection_select :検索したいカラム名,実際に表示したい配列データ,:表示する際に参照するDBのカラム名: 実際に表示されるカラム名 %>

フォームの記述は上記のようになっております。
ここで、どのテーブルにどのカラムを紐付けているかを把握していなければ、理解するのに時間がかかると思いす。(実際に自分がそうでした)

最後に

今回は簡単な検索機能を実施しましたが、DBに保存したデータがうまく取り出せずに、3日ほど詰まっていましたが、無事に解決できました。
初学者の方で私のようなエラーで悩む方の役に立てばと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0