10 Cool Things in Rails 2.3
ACTS AS TAGGABLE ON STEROIDS E WILL PAGINATE INSIEME
Da molto tempo ormai, e con piena soddisfazione, uso questi due plugin, acts as taggable on steroids e will paginate.
Il primo serve ad aggiungere dei tag ad uno o più modelli, mentre il secondo serve a paginare i risultati di una query.
Fin qui tutto ok, ma quando ho provato a paginare i risultati provenienti da una ricerca per tag ho ricevuto un errore sql.
Mi sono informato, e mi sono accorto che è un problema molto conosciuto e diffuso e che riguarda proprio l'incompatibilità tra questi due plugin.
Nelle discussioni dei forum che leggevo, e nei commenti sui blog c'era molta gente scoraggiata e disperata, e tra chi sostituiva will paginate e chi si rifaceva le query da solo, ho trovato per fortuna un'interessante risorsa che risolve il problema, e cioè un post nel blog Dead dead goog.
La soluzione è questa
Nel controller
Links.paged_find_tagged_with(params[:tag], :page => params[:page],
:per_page => @items_per_page)
Nel modello
def self.paged_find_tagged_with(tags,args = {})
if tags.blank?
paginate args
else
options = find_options_for_find_tagged_with(tags)
options.merge!(args)
paginate(options.merge(:count => {:select => options[:select].gsub('*','id')}))
end
end
Se qualcuno conosce un'altro sistema fatemi sapere.
Koolontheweb Web Traffic Stats: February 2009

Sul blog di koolontheweb ho pubblicato, anche questo mese, le statistiche del traffico web del mese di febbraio del mio sito di social bookmark koolontheweb.com. Anche questo mese viene confermato il trend positivo di crescita.
read more | digg story
How to write a custom form builder in Rails?
Custom form builders in Rails exposed! This tutorial will help you to make you view template nice, concise and dry.
read more | digg story
Rails Awesome Email
Check out this SlideShare Presentation:
Yahoo Weather API
Che tempo fa a Roma oggi?
Per saperlo possiamo sfruttare le Wheather api di Yahoo nella nostra applicazione web fatta con rubyOnRails.
Ecco il metodo del controller:
def index
require 'rexml/document'
url = 'http://weather.yahooapis.com/forecastrss?p=ITXX0067&u=c'
xml = REXML::Document.new Net::HTTP.get(URI.parse(url))
xml.elements.each '//item' do |item|
@item = {
:description => item.elements['description'].text
}
end
end
E nella pagina...
<%= @item%>
Il risultato è questo: