2010-06-10 62 views
2

我正在使用will_paginate分页,但我似乎无法使用多个条件在同一时间。例如,如果我想要一个以“Where office_id = 5”结尾的sql查询,那么它非常简单,我可以做到这一点。但是如果我想要做“Where office_id = 5 AND primary_first ='Mark'”呢?我不能那样做。我不知道如何输入多个条件。你能帮我吗??多个条件与will_paginate

下面是我的代码示例:

def self.search(search, page, office_id) 
    paginate :per_page => 5, :page => page, 
      :conditions => ['office_id', "%#{office_id}"], # + ' and primary_first like ?', "%#{params[:search]}%"], 
      #:conditions => ['primary_first', "%#{search}%"], 
      :order => 'created_at' 

谢谢您的帮助!

+0

'“%#{office_id}”'什么是'%'为你想做一个'LIKE'比较? – jigfox 2010-06-10 08:58:23

回答

1

尝试:conditions => ["office_id = ? and primary_first = ?", office_id, search]

或使用动态取景器:

paginate_by_office_id_and_primary_first(office_id, search, :per_page => 5, :page => page, :order => 'created_at')

这将仅适用于等效工作,但是该数据库被定义它。如果你需要使用像,看到Jens Fahnenbruck's answer

3

如果我理解正确的话,你想要什么,这应该工作:

def self.search(search, page, office_id) 
    paginate :per_page => :page => page, 
      :conditions => ["office_id LIKE ? and primary_first LIKE ?", "%#{office_id}", "%#{search}%"] 
      :order => :created_at 
end