ロイの奮闘記録

PdMをやってるロイの日記です。人のつながりを増やしたいと思いながら、社会と奮闘しています

#73 検索条件の追加

#73 10/20 検索条件の追加

 

やりたいこと1:

検索条件を、content以外の

”日程” ”場所” ”楽しみ方”で検索をかけることが出来るようになる。

 

まずは”楽しみ方”で行う。

 

モデルにDBが羅列されていて、

そこの特定カラムで、DB選択で、

そのモデルのみを出す

 

formfor,formtagの応用な気がするので、

そこでselect用いるのが良いかも。

 

・プルダウンでの絞り方について

https://qiita.com/tomoharutsutsumi/items/b98c4b2bcdc3b7366a2b

 

実際のやり方

1.index.html.erbで、 

引数は1つ(:search)だけで行い、

html上で複数入力箇所を作る。

 

2.モデル(Event.rb)上で、

where(['e_content LIKE ?', "%#{search}%"]) 
where(['e_enjoy LIKE ?', "%#{search}%"])

と、記載。

 

 

やりたいこと1.2:

全てという選択肢を作成する。

”すべて” をselect_tag の中に挿入し、引数を空白("")にする

 

やりたいこと1.3:

場所の追加。

なぜEvents.rbで、where(['e_place LIKE ?', "%#{search}%"])

 だけだと成功。

他もあると、失敗。

なぜ?

 

  where(['e_content LIKE ? OR e_place LIKE ? OR e_enjoy LIKE ?', "%#{search}%", "%#{search}%","%#{search}%"])
と1行で書くと成功?

 

いや、おそらく:searchという変数に1つしか入っていない。。

 

■ransackというgem

https://qiita.com/nishina555/items/2c1f8bae980e426519bc

で解決

 

たぶんモデル(event.rb)は触っていない。 

 

 

やりたいこと2:

男性・女性の投稿を制御しなければならない

→ 

・条件式だけだと、同一テーブル複数カラム

・男女も入れると、(複数テーブル)複数モデル

 

モデルを超えた実装が必要

前に"user_"を追加することで解決。

<%= f.label :user_gender, "性別" %>
<%= f.select :user_gender_eq,([["すべて",""],["男性", 0],["女性", 1]]),{:checked => true} %>

 

https://hi-algorithm.com/post-988/

 

セッションエラー→名前変更○→検索のやつ○→編集