# Convertire una string in un campo db

**URL:** <https://www.ruby-forum.com/t/convertire-una-string-in-un-campo-db/123863>\
**Category:** IT\
**Created:** [December 21, 2007, 2:38pm UTC](https://www.ruby-forum.com/t/convertire-una-string-in-un-campo-db/123863 "2007-12-21T14:38:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![harloc](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/73ab20/32.png) [@harloc](https://www.ruby-forum.com/u/harloc)\
**Post date:** [December 21, 2007, 2:38pm UTC](https://www.ruby-forum.com/t/convertire-una-string-in-un-campo-db/123863/1 "2007-12-21T14:38:50Z")

</div>

Ciao,  
forse il titolo non spiega bene quello che sto cercando.  
Ho fatto un ciclo in questo modo:

\<% ex\_title = [“Data”, “G.bianchi”, “Emoglobina”]%\>  
\<% ex\_field = [“date\_bio”, “gb\_bio”, “hb\_bio”]%\>

 \<% ex\_field.length.times do |i|%\> \<% for bioex\_item in @patient.bioex\_items %\> \<% campo = "bioex\_item." + ex\_field[i].to\_s%\> \*\*\* \<% end %\> \<% end%\>

| **\<%=ex\_title[i]%\>** | **\<%= campo%\>** |

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

–  
Dr. Marco Forlin  
cell: 349 5322671  
email: removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![harloc](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/73ab20/32.png) [@harloc](https://www.ruby-forum.com/u/harloc)\
**Post date:** [December 21, 2007, 3:01pm UTC](https://www.ruby-forum.com/t/convertire-una-string-in-un-campo-db/123863/2 "2007-12-21T15:01:40Z")

</div>

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| %\> \<% for bioex\_item in @patient.bioex\_items %\> \<% end %\> \<% end %\>

| **\<%=h field\_label %\>** | **\<%= bioex\_item.send( field\_attr ) %\>** |

---

<div class="post-metadata">

**Author:** ![harloc](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/73ab20/32.png) [@harloc](https://www.ruby-forum.com/u/harloc)\
**Post date:** [December 21, 2007, 3:05pm UTC](https://www.ruby-forum.com/t/convertire-una-string-in-un-campo-db/123863/3 "2007-12-21T15:05:12Z")

</div>

grazie mille!  
ciao marco

On Dec 21, 2007 3:00 PM, David [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> @fields\_and\_labels = {
> 
> > 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
> 
> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
Dr. Marco Forlin  
cell: 349 5322671  
email: removed\_email\_address@domain.invalid
