<% for bioex_item in @patient.bioex_items %>
<% campo = "bioex_item." + ex_field[i].to_s%>
***
<%= campo%>
<% end %>
<% end%>
dove ho posizionato gli asterischi vorrei che la stringa fosse
convertita nel valore del campo del DB, come se
scrivessi bioex_item.date_bio (la prima volta per esempi).
Conoscete un metodo per fare quello che voglio?
Grazie,
ciao marco
Per prima cosa mi sento di consigliarti di spostare il codice verso il
controller (e magari anche il model) e lasciare il view il più pulito
possibile. Credimi, ne va della tua salute a lungo termine!
La risposta veloce è “usa send()”, e cioè, togli
<% campo = “bioex_item.” + ex_field[i].to_s%>
…e la riga sotto diventa:
<%= bioex_item.send(ex_field[i]) %>
Un modo un po’ più pulito di farlo potrebbe essere:
nel controller preparare un hash sifatto: @fields_and_labels = {
‘Data’ => ‘date_bio’,
‘G.bianchi’ => ‘gb_bio’,
‘Emoglobina’ => ‘hb_bio’
}
(ci sono probabilmente modi più furbi per assegnare label ai campi, magari
facendo un override di
ActiveRecord::ConnectionAdapters::Colum#human_name)
e nella view avere qualcosa
così:
<% @fields_and_labels.each do |field_label, field_attr| %>
Ciao, <%=ex_title[i]%>
dove ho posizionato gli asterischi vorrei che la stringa fosse
convertita nel valore del campo del DB, come se
scrivessi bioex_item.date_bio (la prima volta per esempi).
Conoscete un metodo per fare quello che voglio?
Grazie,
ciao marco