私はフロントエンドにオートコンプリートフォームを持っています。私がやりたいことは、複数のモデルにまたがって検索を行い、結果を組み合わせて返すことです。私が読んだすべての関連記事は、関連性のあるモデルに関するものです。ここに私のスキーマの簡易版でチラッです:私はcountries
iso
とbooks
country_code
間join
試してみたRails:関連付けなしで複数のモデルを検索する
create_table "countries", force: :cascade do |t|
t.string "iso"
t.string "name"
end
create_table "cities", force: :cascade do |t|
t.string "name"
end
create_table "books", force: :cascade do |t|
t.string "country_code"
end
は、それはまだcities
を残します。私もこれを試してみました:Book.where("name ILIKE ?", "%term%") + Country.where("name ILIKE ?", "%term%") + City.where("name ILIKE ?", "%term%")
しかし、それはActiveRecord :: Relationではない配列を返しますので、必要以上の検索につながる制限は使用できません(オートコンプリートには5つの結果しか必要ありません)。これをやり遂げるにはどうすればいいですか?役立つなら、私はPostgreSQLを使っています。
編集:私はpg_search宝石を使用して終了し、それはうまくいくようです!