2009-03-17 6 views
3

ProjectProject Category 이름을 동시에 검색 할 수 있도록 find 또는 paginate 메서드에 조건문을 쓰려면 어떻게해야합니까? 이레일 : 하나의 쿼리에서 여러 테이블 검색

@projects = Project.paginate :per_page => 20, :page => params[:page], :conditions => ['name LIKE ?', "%#{params[:search]}%"] 

그래서 내가 name 필드도 Category 테이블이 같은

지금 내 코드 보인다. 이 두 개의 name을이 검색어에 어떻게 결합합니까?

@categories = Category.find :conditions => ["name like ?", "%#{params[:search]}%"] 

연결할의 @projects 및 @categories 한 다음 최종 검색 결과 목록으로 결과를 사용

답변

8

가정 당신의 Project 모델 has_many :categories 다음 :order 위의 경우/필요에 따라

@projects = Project.paginate :per_page => 20, :page => params[:page], :joins => :categories, :conditions => ['projects.name LIKE ? OR categories.name LIKE ?', "%#{params[:search]}%", "%#{params[:search]}%"], :order => 'projects.id DESC'

변경합니다.

0

나는 할 것이다.

관련 문제