0

現在、レシピモデルの列を検索する検索フォームがあります。国と呼ばれる関連モデルを検索し、名前列を検索したいと考えています

これまでの私のコードは

  q = "%#{params[:search]}%"

 @countrysearch = Recipe.where("dish_name LIKE ? OR country_of_origin LIKE ? OR difficulty LIKE ? OR preperation_time LIKE?", q, q, q, q )

国モデルに参加する必要があると言うのは正しいですか? もしそうなら、これの構文がわからない場合、どのリソースを調べるか、以前にこのクエリを実行したことがある人はいますか?

ありがとう

4

2 に答える 2

2

これを許可するために、ランサックhttps://github.com/ernie/ransackという名前の宝石があります ( https://github.com/ernie/ransack#has_many-and-belongs_to-associations )

于 2012-11-11T16:24:08.090 に答える
1

結合を使用するか、関連付けを熱心にロードして条件を指定することができます。

Recipe.includes(:country).where("dish_name like ? OR countries.name like ?", ...)

このガイドの「熱心にロードされたアソシエーションの条件の指定」のセクションを参照してください。

于 2012-11-11T16:10:42.913 に答える