使用will-paginate与多个咨询

时间:2013-09-13 14:20:27

标签: ruby-on-rails ruby-on-rails-3

我试图在我的项目中使用will_pagination,看起来很简单,但我有这个咨询显示一个想法列表...

@ideas= current_company.ideas.find_all_by_status_and_creator_id('editable', current_user.id) +
      current_company.ideas.find_all_by_status('valid') + 
      current_company.ideas.find_all_by_status_and_creator_id('purchable', !current_user.id)

所以我这样修改它,使用paginate

current_company.ideas.where(:status => ['editable', 'valid'], :creator_id=> current_user.id).paginate ....

但我如何包括最后一个条件?

如果我在数组中包含“purchaseable”状态,该如何处理其他用户对current_user的干扰?

任何想法

1 个答案:

答案 0 :(得分:1)

嗯,我相信你必须创建一个where字符串。

current_company.ideas.where(
"
  (status IN ('editable', 'valid') AND creator_id = ?) 
  AND 
  (status = 'purchable' AND creator_id <> ?) 
", 
current_user.id, !current_user.id).paginate...

请注意,您可能必须将表名放在ideas.status等属性之前。