# How to serialize a symbol coming from a Form

**URL:** <https://www.ruby-forum.com/t/how-to-serialize-a-symbol-coming-from-a-form/64586>\
**Category:** Rails\
**Created:** [August 10, 2006, 5:23am UTC](https://www.ruby-forum.com/t/how-to-serialize-a-symbol-coming-from-a-form/64586 "2006-08-10T05:23:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![nuno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/65b543/32.png) [@nuno](https://www.ruby-forum.com/u/nuno)\
**Post date:** [August 10, 2006, 5:23am UTC](https://www.ruby-forum.com/t/how-to-serialize-a-symbol-coming-from-a-form/64586/1 "2006-08-10T05:23:09Z")

</div>

Hello, I would like to use serialized symbols as values for select in  
forms.

eg.  
class Vehicle \< ActiveRecord::Base  
@@statuses = {:wait =\> ‘No yet’, :ok =\> ‘Run run run’}  
validates\_inclusion\_of status, :in =\> @@statutes.keys  
Serialize status, Symbol

def self.statuses  
@@statuses  
end  
end

Then, I can use Vehicle.statuses.invert to populate my select drop down  
list in the form.

Unfortunately when the form is submited the ‘values’ sent are not  
recognized as a symbols and an error occurs  
“status was supposed to be a Symbol, but was a String”

I understand that the value posted is “wait” or “ok” and not :wait or  
:ok but I didn’t found a way to convert them to symbols correctly.

in the controller using  
vehicle.status = eval(":#{vehicle.status}")

Of course I might use strings as keys instead of symbols for the hashes  
but I find them less readable in the source code.

Any help appreciated, thanks

---

<div class="post-metadata">

**Author:** ![nuno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/65b543/32.png) [@nuno](https://www.ruby-forum.com/u/nuno)\
**Post date:** [August 10, 2006, 5:24am UTC](https://www.ruby-forum.com/t/how-to-serialize-a-symbol-coming-from-a-form/64586/2 "2006-08-10T05:24:28Z")

</div>

I wanted to write :  
in the controller using  
vehicle.status = eval(":#{vehicle.status}")

didn’t helped

The code above is not real, forgive the typos

---

<div class="post-metadata">

**Author:** ![nuno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/65b543/32.png) [@nuno](https://www.ruby-forum.com/u/nuno)\
**Post date:** [August 10, 2006, 7:47am UTC](https://www.ruby-forum.com/t/how-to-serialize-a-symbol-coming-from-a-form/64586/3 "2006-08-10T07:47:37Z")

</div>

nuno wrote:

> I wanted to write :  
> in the controller using  
> vehicle.status = eval(":#{vehicle.status}")
> 
> didn’t helped
> 
> The code above is not real, forgive the typos

Hi Nuno,

Here is the syntax:  
“foo”.to\_sym

Jean-Etienne

---

<div class="post-metadata">

**Author:** ![nuno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/65b543/32.png) [@nuno](https://www.ruby-forum.com/u/nuno)\
**Post date:** [August 10, 2006, 8:51pm UTC](https://www.ruby-forum.com/t/how-to-serialize-a-symbol-coming-from-a-form/64586/4 "2006-08-10T20:51:50Z")

</div>

Fiiiiine !!

Merci / Thank you Jean Etienne !
