2010-06-10 50 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