使用will_paginate的多个条件

时间:2010-06-10 08:46:03

标签: ruby-on-rails will-paginate

我使用will_paginate进行分页,但我似乎无法一次使用多个条件。例如,如果我想要一个以“Where office_id = 5”结尾的SQL查询,那么它非常直接,我可以这样做。但是如果我想做“Office_id = 5 AND primary_first ='Mark'”怎么办?我做不到。我不知道如何输入多个条件。你能帮帮忙吗?

以下是我的代码示例:

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'

感谢您的帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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')

这些只适用于等效,但db正在定义它。如果您需要使用LIKE,请参阅Jens Fahnenbruck's answer