这主要基于 RailsCasts 截屏视频,#341。
我正在尝试使用 PostgreSQL 全文搜索,它可以工作,但我需要确定它的范围。搜索应该通过对象 where 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 会抛出未定义的方法错误。
我还能做些什么来确定搜索范围?或者如何解决此尝试的错误?