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
=> Stringuser.roles[0].id.class
=> Fixnum
shouldn’t default_flag be a Fixnum?