# Problemi con Symbol: Leggendo il valore mi ritorna --- :simb

**URL:** <https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985>\
**Category:** IT\
**Created:** [May 12, 2007, 11:50am UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985 "2007-05-12T11:50:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [May 12, 2007, 11:50am UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985/1 "2007-05-12T11:50:54Z")

</div>

Salve a tutti,

Ho un modello in Rails che ha alcuni campi assegnati per mezzo di:

istanza.nome\_campo = :valore

Orbene, per tutti i campi tranne uno, quando vado a recuperare il valore  
dello stesso mi ritorna correttamente la rappresentazione in stringa del  
simbolo assegnato.  
Dico correttamente perchÃ¨ il campo Ã¨ dichiarato come stringa nella  
migration.

Il campo che ha il comportamento anomalo mi restituisce:

— :valore

Le assegnazioni per i campi di cui sopra, vengono _tutte_ fatte in un  
unico punto del controller.

Ho giÃ fatto ricerche con grep e con TexMate per vedere se, da qualche  
parte nel progetto, abbia modificato qualcosa per quel campo in  
particolare. Sfortunatamente, non trovo nulla.

Aggiungo che, se eseguo l’assegnazione dalla console di Rails, il  
problema non si manifesta.

Da cosa potrebbe dipendere?

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [May 12, 2007, 12:01pm UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985/2 "2007-05-12T12:01:16Z")

</div>

Il campo nel db è stringa ?

Il giorno 12/mag/07, alle ore 11:50, Carmine M. ha scritto:

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [May 12, 2007, 12:22pm UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985/3 "2007-05-12T12:22:29Z")

</div>

Giovanni I. wrote:

> Il campo nel db ï¿½ stringa ?

Si, questa Ã¨ tutta la migration:

```
create_table :orders do |t|
  t.column :user_id, :integer
  t.column :user_ip, :string
  t.column :created_at, :timestamp
  t.column :updated_at, :timestamp
  t.column :stato, :string, :default => 'aperto'
  t.column :fase, :string
  t.column :spedizione, :string, :default => 'pacco1'
  t.column :pagamento, :string, :default => 'bonifico'
  t.column :indirizzo, :string
  t.column :civico, :integer
  t.column :cap, :integer
  t.column :comune, :string
  t.column :provincia, :string
  t.column :telefono, :string
  t.column :email, :string
  t.column :note, :string
end

```

E qui l’unico punto dove assegno il campo incriminato: “stato”

def conferma  
@order = Order.find(session[:ordine])  
@order.stato = :confermato  
@order.save!  
empty\_cart  
end

StÃ² impazzendo per venirne fuori.

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [May 14, 2007, 11:38am UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985/4 "2007-05-14T11:38:02Z")

</div>

Dopo tanto sbattimento ne sono venuto a capo.  
Riporto di seguito, a beneficio di quelli che potrebbero avere le mie  
stesse lacune.

I campi “non-db” vengono serializzati con YAML. Questo spiega perchÃ¨ nel  
DB, e quindi a video, mi viene restituito: “— :simbolo\n”.

Per ottenere il comportamento da me voluto Ã¨ bastato aggiungere nella  
classe in questione una serie di: “serialize(nome\_attributo)”.

In questo modo, ActiveRecord, si occupa della serializzazione e della  
successiva deserializzazione dell’attributo specificato.

Phew 🙂

Ed i libri, non ne parlano mai (almeno non quelli che ho letto io).

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [May 14, 2007, 1:36pm UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985/5 "2007-05-14T13:36:58Z")

</div>

On May 14, 2007, at 11:38 AM, Carmine M. wrote:

> In questo modo, ActiveRecord, si occupa della serializzazione e della  
> successiva deserializzazione dell’attributo specificato.
> 
> Phew 🙂
> 
> Ed i libri, non ne parlano mai (almeno non quelli che ho letto io).

Pagina 313 di “Agile programming with Rails”, 2a edizione  
Pero’ scusa, se nel campo devi memorizzare un simbolo, perche’ non  
memorizzi direttamente  
una stringa e poi chiami #intern quando ti serve il simbolo? Cosi’ ti  
risparmi i passaggi  
di serializzazione/deserializzazione tramite YAML.  
Se invece devi memorizzare strutture arbitrarie e non solo simboli,  
come non detto.

–  
Stefano C.  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [May 14, 2007, 2:15pm UTC](https://www.ruby-forum.com/t/problemi-con-symbol-leggendo-il-valore-mi-ritorna-simb/103985/6 "2007-05-14T14:15:14Z")

</div>

Stefano C. wrote:

> Pagina 313 di “Agile programming with Rails”, 2a edizione

Ecco, appunto 🙂 Mi manca la pagina 313 😛 (Che memoria di m…)

> Pero’ scusa, se nel campo devi memorizzare un simbolo, perche’ non  
> memorizzi direttamente  
> una stringa e poi chiami #intern quando ti serve il simbolo? Cosi’ ti  
> risparmi i passaggi  
> di serializzazione/deserializzazione tramite YAML.

Hai perfettamente ragione ed, infatti, Ã¨ quello che farÃ².  
Nella bozza che ho scritto, ho utilizzato i simboli ed Ã¨ saltato fuori  
questa cosetta che mi era completamente sfuggita nella fase di  
apprendimento.

Era interessante, per me, capire il perchÃ¨ del problema.

Fatto ciÃ², Ã¨ logico utilizzare il metodo piÃ¹ indolore possibile che, nel  
mio caso, Ã¨ proprio quello della stringa!

> Se invece devi memorizzare strutture arbitrarie e non solo simboli,  
> come non detto.

Grazie per il suggerimento!
