Usare acts_as_taggable con will_paginate

Posted by Dibi Store Thu, 20 Mar 2008 14:28:00 GMT

Il plugin acts_as_taggable_on_steroids è molto utile quando abbiamo bisogno di taggare i nostri modelli in rails. Recentemente mi sono trovato a dover implementare una funzionalità di paginazione che tenesse conto dei risultati della ricerca per tag. Come plugin per la paginazione usiamo will_paginate e per aggiungere la funzionalità mi è bastato inserire questo pezzo di codice alla fine del file environment.rb.

  module ActiveRecord
    module Acts
      module Taggable
        module SingletonMethods
          def paginate_tagged_with(*args)
            options = find_options_for_find_tagged_with(*args)
            options.blank? ? WillPaginate::Collection.new(1, 1, 0) : paginate(:all, options)
          end        
        end
      end
    end
  end

Dietro le quinte stiamo definendo un metodo che usa paginate al posto di file, WillPaginate::Collection.new(1, 1, 0) serve invece per evitare di ricevere l'errore undefined method `page_count' for []:Array quando l'array di risultati è vuoto.

Posted in  | no comments | no trackbacks

Comments

Trackbacks

Use the following link to trackback from your own site:
http://www.dibistore.com/trackbacks?month=03&year=2008&article_id=usare-acts_as_taggable-con-will_paginate&day=20

(leave url/email »)

   Preview comment