두 모델, 제품 및 제작자가 있습니다. 생산자는 많은 제품을 보유 할 수 있고 제품은 생산자에게 속할 수 있습니다. 지금과 같은 검색 쿼리에서 모든 레코드를 얻으려고 : product.name 또는 product.producer.name 검색 문자열과 같은 곳레일에 레코드 검색하기 belongs_to 또는 has_many 포함
@products = Product.where("name like ? OR product.producer.name like ?", "%#{params[:q]}%", "%#{params[:q]}%")
는이 모든 제품을 반환해야합니다. 레일이 짧습니까?
Product.includes(:producer)
.where('products.name LIKE ? OR producers.name LIKE ?', "%#{params[:q]}%", "%#{params[:q]}%")
당신은 그것으로 범위를 만들 수 있습니다 :
class Product < ActiveRecord::Base
scope :with_name_like, lambda { |name|
includes(:producer).where('products.name LIKE ? OR producers.name LIKE ?', "%#{name}%", "%#{name}%")
}
을 그리고 다음과 같이 사용 :
네, 그것은이다. 당신처럼 당신이 사용하고자하는 경우 전체 텍스트 검색에 대한 일부를 읽어보십시오. –