# Form field returns string instead of int

**URL:** <https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962>\
**Category:** Rails\
**Created:** [January 4, 2008, 3:33am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962 "2008-01-04T03:33:09Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 3:33am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/1 "2008-01-04T03:33:09Z")

</div>

\<%= select( “user” , “type”, { “Practice” =\> 1, “Doctor” =\> 2,  
“Hygenist” =\>3, “Assistant” =\> 4 }, {:include\_blank =\> false, :prompt  
=\>true}) %\>

produces:

Please  
select

Hygenist Assistant Doctor Practice 

and the form returns a string. how do i get the form to submit an  
int… or get AR to convert it? select fields can return an int right?

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 3:45am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/2 "2008-01-04T03:45:26Z")

</div>

params[:user][:type].to\_i

All int’s submitted by fields are actually submitted as strings. Same  
goes  
for dates and anything else, it’s always a string.

On Jan 4, 2008 1:02 PM, spokra [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hygenist

–  
Ryan B.

> **[frozenplague.net](http://www.frozenplague.net)**
>
> This domain may be for sale!

Feel free to add me to MSN and/or GTalk as this email.

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 3:48am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/3 "2008-01-04T03:48:56Z")

</div>

this would be in the controller in create and update then?

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 4:15am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/4 "2008-01-04T04:15:49Z")

</div>

forgive me I’m a newbie…

I’ve tried both

params[:user][:type].to\_i  
params[:user][:type]=params[:user][:type].to\_i

neither work…

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 3:58am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/5 "2008-01-04T03:58:52Z")

</div>

Indeed

On Jan 4, 2008 1:18 PM, spokra [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > > =\>true}) %\>  
> > > and the form returns a string. how do i get the form to submit an  
> > > int… or get AR to convert it? select fields can return an int right?
> > 
> > –  
> > Ryan B.[http://www.frozenplague.net](http://www.frozenplague.net)  
> > Feel free to add me to MSN and/or GTalk as this email.- Hide quoted text
> 
> - 
> 
> > - Show quoted text -

–  
Ryan B.

> **[frozenplague.net](http://www.frozenplague.net)**
>
> This domain may be for sale!

Feel free to add me to MSN and/or GTalk as this email.

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 4:44am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/6 "2008-01-04T04:44:31Z")

</div>

turns out :type must be used internal to AR… I changed  
to :accounttype and updated the table and everything worked… AR knew  
it was an INT and saved it correctly!!

maybe a standard of prepending internal symbols with the classname  
would eliminate collitions

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 4:44am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/7 "2008-01-04T04:44:31Z")

</div>

You want to do:

@user.type = params[:user][:type].to\_i  
@user.save!

or something similiar.

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 4:50am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/8 "2008-01-04T04:50:57Z")

</div>

On Jan 3, 2008, at 8:32 PM, spokra wrote:

> Hygenist Assistant Doctor Practice 
> 
> and the form returns a string. how do i get the form to submit an  
> int… or get AR to convert it? select fields can return an int right?

AR will know what to do with the string. The problem is that you’re  
using the word ‘type.’ Change it to something else and it will work.

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [January 4, 2008, 5:59am UTC](https://www.ruby-forum.com/t/form-field-returns-string-instead-of-int/124962/9 "2008-01-04T05:59:52Z")

</div>

Damn it, I should’ve noticed.

Yes type is a reserved field in ActiveRecord. It is used for putting  
types  
on Single Table Inheritance tables.
