# Why would an int column in a join table be a String class in

**URL:** <https://www.ruby-forum.com/t/why-would-an-int-column-in-a-join-table-be-a-string-class-in/50254>\
**Category:** Rails\
**Created:** [December 14, 2005, 4:12pm UTC](https://www.ruby-forum.com/t/why-would-an-int-column-in-a-join-table-be-a-string-class-in/50254 "2005-12-14T16:12:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [December 14, 2005, 4:12pm UTC](https://www.ruby-forum.com/t/why-would-an-int-column-in-a-join-table-be-a-string-class-in/50254/1 "2005-12-14T16:12:27Z")

</div>

i’ve got an issue with integer columns in the database becoming strings  
in  
the model and I’m not sure why this is happening. perhaps someone can  
explain.

given the following setup (simplified for example)

tables:

## users

id - int  
name - varchar(60)

## roles

id - int  
name - varchar(60)

## roles\_users (join table)

role\_id - int  
user\_id - int  
default\_flag - int

data:

user =\> 1, ‘joe’  
role =\> 1, ‘admin’  
roles\_users =\> 1, 1, 1

models:

class User \< ActiveRecord::Base  
has\_and\_belongs\_to\_many :roles  
end

class Role \< ActiveRecord::Base  
has\_and\_belongs\_to\_many :users  
end

console:

> > user = User.find(1)  
> > =\> #\<User:0xb771b494 @attributes={“id”=\>“1”, “location\_id”=\>nil,  
> > “active\_flag”=\>“1”, “name”=\>“joe”}
> 
> > > user.roles[0].default\_flag.class  
> > > =\> String
> 
> > user.roles[0].id.class  
> > =\> Fixnum

shouldn’t default\_flag be a Fixnum?

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [December 14, 2005, 10:35pm UTC](https://www.ruby-forum.com/t/why-would-an-int-column-in-a-join-table-be-a-string-class-in/50254/2 "2005-12-14T22:35:24Z")

</div>

On 12/14/05, Chris H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> i’ve got an issue with integer columns in the database becoming strings in  
> the model and I’m not sure why this is happening. perhaps someone can  
> explain.

Is this possibly the same issue as this ticket?  
[http://dev.rubyonrails.org/ticket/240](http://dev.rubyonrails.org/ticket/240)

–Wilson.

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [December 15, 2005, 3:00am UTC](https://www.ruby-forum.com/t/why-would-an-int-column-in-a-join-table-be-a-string-class-in/50254/3 "2005-12-15T03:00:52Z")

</div>

thanks. sometimes i forget to go look at trac.

yes, it looks to be the same…i see a fix has been pushed back to  
1.x…noproblem, i can always do == “1” in the meantime.

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [December 15, 2005, 3:39am UTC](https://www.ruby-forum.com/t/why-would-an-int-column-in-a-join-table-be-a-string-class-in/50254/4 "2005-12-15T03:39:59Z")

</div>

to\_i also works. 🙂
