deviseなしで複数検索機能を作成したい Rails

実現したいこと

deviseなしで複数検索機能を作成したい

前提

二種の検索バーから検索ワードの入力。
条件により、user一覧を表示したい。

現在は名前検索はできているが、affiliation検索ができない。
両方一緒もできない

発生している問題・エラーメッセージ

エラーメッセージ

なし

ruby

1userモデル 2 3 def self.search_by_name(keyword)4 if keyword.present?5 where("first_name LIKE ? OR last_name LIKE ? OR first_name_reading LIKE ? OR last_name_reading LIKE ?", "%#{keyword}%", "%#{keyword}%", "%#{keyword}%", "%#{keyword}%")6 else7 all 8 end

ruby

1user_categoryモデル 2 3 def self.search_by_affiliation(affiliation_keyword)4 if affiliation_keyword.present?5 where("affiliation LIKE ?", "%#{affiliation_keyword}%")6 else7 all 8 end9 end

ruby

1コントローラー 2 3def search4 # @users = User.all5 @keyword = params[:keyword]6 @users = User.search_by_name(@keyword)7 @user_categories = UserCategory.search_by_affiliation(@affiliation_keyword)8 9 if @keyword.present?10 # 名前による検索11 name_search = User.where("first_name LIKE ? OR last_name LIKE ? OR first_name_reading LIKE ? OR last_name_reading LIKE ?", "%#{@keyword}%", "%#{@keyword}%", "%#{@keyword}%", "%#{@keyword}%")12 else13 name_search = User.none 14 end15 16 if @affiliation.present?17 # 勤務施設による検索18 affiliation_search = UserCategory.where("affiliation LIKE ?", "%#{@affiliation}%")19 else20 affiliation_search = UserCategory.none 21 end22 23 # 名前と勤務施設の両方を考慮した検索結果を取得24 @search_results = name_search.or(affiliation_search)25

試したこと

各モデルに条件設定。

その後コントローラーで検索欄の名前が空ならaffiliationから検索!ってしたつもりです。
素人のためここが全然違うよ!などご教授いただければと思います。

補足情報(FW/ツールのバージョンなど)

Rails 6.0.6.1
devise-4.9.2

コメントを投稿

0 コメント