ほとんどの場合、これは RailsCasts スクリーンキャスト #341 に基づいています。
PostgreSQL の全文検索を使用しようとしていますが、機能しますが、スコープを設定する必要があります。検索は、object.state=='saved'
.
スクリーンキャストでは検索のメソッドがクラスメソッドのように定義されているため、「where」は配列を返すため「where」を使用できず、検索メソッドはクラスメソッドであるため、ここでエラーになります。このように変更しようとしました:
def test_search(query)
if query.present?
self.where("title @@ :q or text_for_test @@ :q", q:query)
else
scoped
end
end
に:
@tests=Test.where(:state=>'saved')
@tests.test_search(params[:query])
しかし、Rails は undefined method エラーをスローします。
検索範囲を設定するために他に何ができますか? または、この試行のエラーを修正するにはどうすればよいですか?