Railscasts #343 Full-Text Search in PostgreSQL に従っていますが、最初に問題が発生します。
モデルの次の行を置き換えます。
where("name ilike :q or content ilike :q", q: "%#{query}%")
に
where("name @@ :q or content @@ :q", q: query)
しかし、Railscast のように検索を実行することはできません。名前に「FOO」があり、コンテンツに「BAR」があり、「FOO BAR」を検索すると、結果は空になります。(古いコードと「ilike」機能と同様)
SQL リクエストは次のようになります。
* FROM "posts" where (name @@ 'foo bar' or content @@ 'foo bar')
Windows 7 x64 で PostgreSQL 9.2.2 、Rails 3.2.6 および Ruby 1.9.3p125 を使用しています。
事前に感謝します。
編集
私の宝石ファイル:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
gem 'pg'
gem "ransack"
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
コメント行をすべて削除しました。
PS:明確にするために、「ランサック」を追加する前に、同じ問題がありました。