2009-03-17 8 views
3

ProjectProject Categoryの名前を同時に検索できるように、findまたはpaginateの方法で条件文を書くにはどうすればよいですか?Rails:1つのクエリから複数のテーブルを検索する

は今、私のコードは、だから私はname分野でもCategoryテーブルを持っているこの

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

のように見えます。この2つのnameをこの検索クエリに組み合わせるにはどうすればよいですか?

答えて

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

私はどうなる:

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

を連結する@projectsと@categoriesをした後、最終的な検索結果リストとして結果を使用します。

関連する問題