【Rails】ransackを使って検索する際、複数のカラムから検索させる

ブログを書いている人 Ruby、Ruby on Rails

ブログを書いている人

ransackと言うgemがあります。

 

これを利用すると、検索フォームが簡単に作れる優れものです。

 

なのですが・・・

これを使って、「複数のカラムにまたがって検索する方法」が分からなかったので、メモっておきます。

スポンサーリンク

前提

こんなテーブルがあったとします。

title headline content
book1 自己啓発 アウトプットする
book1 ストレス解消 よく寝る
book2 レシピ カレー

 

controllerは、

こんな感じ。

 

その上で、index.html.erbに、

と入力すると、contentからしか検索できません。

 

なので、「レシピ」と検索しても何もヒットしなくなります。

ではどうすれば良いか?

「_or_」で繋げる

結論から書くと、「_or_」で繋げることで、複数のカラムから検索することが出来ました。

 

こんな感じで、titleとheadlineとcontentを_or_で繋げることで、複数のカラムから検索することが出来ます。

これで、「レシピ」と検索すれば、BOOK2がヒットします。

 

f.labelは別に変更しなくても良いか。

コメント

タイトルとURLをコピーしました