1

will_paginate を squeel と連携させるのに問題があります。

次のコードは、フォームの params を使用して検索を行います。

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  

「Disponível」(item_status_logico) と「Funciona」(item_status_fisico) で機能します。しかし、 :criterio に何かを入れると、次のメッセージで壊れます:

nil:NilClass の未定義メソッド「paginate」

私のコントローラーには、すべてを呼び出すリストメソッドがあります

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

次の資料を見て理解します。しかし、私はできませんでした。

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

誰でも助けることができますか?

情報:

  • ルビー (1.9.3)
  • will_paginate (3.0.4)
  • きしむ (1.0.18)
  • レール (3.2.13)
4

0 に答える 0