1

I'm having trouble making will_paginate work together with squeel.

The following code makes a search using params from a form.

def self.search(params)
  if params
    campo_a_pesquisar = params[:column]
    item_status_fisico = params[:item_status_fisico]
    item_status_logico = params[:item_status_logico]
    criterio = params[:criterio]

    q = self
      
    q = q.where{item_status_logico_id =~ my{item_status_logico}} unless item_status_logico.nil?
    q = q.where{item_status_fisico_id =~ my{item_status_fisico}} unless item_status_fisico.nil?
      
    q = q.where{(__send__(column) =~ my{criterio})} unless criterio.empty?
    q = q.where{(id != 0)} if criterio.empty?
  else
    self
  end
end  

It works for "Disponível" (item_status_logico) and "Funciona" (item_status_fisico). But if I put something on :criterio it breaks with the following message:

undefined method `paginate' for nil:NilClass

My controller has a list method which invoke everything

def list
  @itens = Item.search(params[:item]).paginate(:page => params[:page])
end

I look on the following material to figure out. But I couldn't.

  • https:// github.com/ernie/squeel/wiki/Tips-and-tricks
  • https:// github.com/ernie/squeel
  • http:// railscasts.com/episodes/354-squeel

Can anyone help?

Info:

  • ruby (1.9.3)
  • will_paginate (3.0.4)
  • squeel (1.0.18)
  • rails (3.2.13)
crusy
  • 1,424
  • 2
  • 25
  • 54
brunocalado
  • 136
  • 7

0 Answers0