주로 RailsCast 스크린 캐스트 인 # 341을 기반으로합니다.PostgreSQL 전체 텍스트 검색 : 어떻게 범위를 지정합니까?
PostgreSQL 전체 텍스트 검색을 사용하려고하는데 작동하지만 스코프를 사용해야합니다. 검색은 객체를 통과해야합니다. object.state=='saved'
.
스크린 캐스트에서 검색 방법은 클래스 메소드와 같이 정의되어 있으므로 'where'는 'Array'를 반환하고 검색 방법은 클래스 메소드이므로 'where'를 사용할 수 없으므로 여기에서 오류가 발생합니다.
@tests=Test.where(:state=>'saved')
@tests.test_search(params[:query])
그러나 레일이 정의되지 않은 메서드에 오류가 발생합니다 이상 :
def test_search(query)
if query.present?
self.where("title @@ :q or text_for_test @@ :q", q:query)
else
scoped
end
end
에 : 나는이 방식을 변경했습니다.
내 검색 범위를 좁히려면 어떻게해야합니까? 또는이 시도의 오류를 어떻게 수정합니까?