Ciao,
sto provando a paginare un mio modello, ma sino ad ora senza successo e
con comportamenti quantomeno anomali.
nel mio controller eseguo questo codice per paginare il mio modello.
@travels_pages, @travels = paginate :my, :per_page => 2
per far ciò ho ridefinito il metodo find del mio modello come segue.
def self.find(*args)
@travels = []
@t = Travel.find_by_sql("SELECT
travels.*,count(travel_comments.travel_id) as comments " +
"FROM travels left join travel_comments on travels.id =
travel_comments.travel_id " +
"group by travels.id " +
“ORDER BY created”)
@t.length.times do |n|
@travels[n] = My.new
@travels[n].add_travel(@t[n])
Location.find(:all,:conditions => [“travel_id = ?”,@t[n].id]).each do
|loc|
@travels[n].add_location(loc)
end
@travels[n].add_duration(@travels[n].locations[@travels[n].locations.length-1].departure
- @travels[n].locations[0].departure)
end
return @travels
end
il fatto strano è che nella vista la variabile @travels contiene tutti i
record quando ne dovrebbe contenere due per pagina, inoltre
@travels_pages non contiene niente, cioè non è nil ma non ha manco le
pagine.
Che sbaglio?
Saluti Andrea