[ruby-it] Alleggerire estrazione dati da tabella
Pietro Giorgianni
giorgian a gmail.com
Mer 7 Ott 2009 13:10:50 CEST
Il 07 ottobre 2009 12.39, Daneel Olivaw <daneel.olivaw.r a gmail.com> ha scritto:
> Ah, c'è un errore dopo "car2" (che poi sarebbe lafine dell'ultimo
> conteggio e passaggio alla variabile) non ci va la parentesi :-)
mannaggia! :P
> <% for user in @user %>
> <%= user.login %>
> <%= user['car1'] %>
> <% car1tot += user['car1'].to_i %>
> <%= user['car2'] %>
> <% car2tot += user['car2'].to_i %>
> <% end %>
> ...
>
> Ho dovuto aggiungere il "to_i" perché il dato così com'è è visto come
> stringa... è normale?
Sì, è normale: il metodo find_by_sql è definito così:
def find_by_sql(sql)
connection.select_all(sanitize_sql(sql), "#{name} Load").collect! {
|record| instantiate(record) }
end
e tutti i metodi find usano find_by_sql.
Ad esempio, in un mio progetto c'è un modello Amount, un cui elemento
(trovato con Amount.first) è questo:
#<Amount id: 1, attachment_id: 174, tax_base: 139.58, vat_rate: 20.0,
vat: 27.92, created_at: "2008-11-07 15:58:56", updated_at: "2008-11-07
15:58:56">
dalla connection però arriva questo:
{"vat_rate"=>"20", "updated_at"=>"2008-11-07 15:58:56",
"attachment_id"=>"174", "id"=>"1", "vat"=>"27.92",
"tax_base"=>"139.58", "created_at"=>"2008-11-07 15:58:56"}
È poi il metodo instantiate che fa le conversioni necessarie,
basandosi sull'attributo columns, che contiene la definizione delle
varie colonne.
pietro
More information about the Ml
mailing list