Rails 4 model returns always nil

rails-activerecord, ruby-on-rails-4

Solution

I found the problem.

Some days ago I changed the config/application.rb file adding the following configuration to solve some issues with timezones:

config.time_zone and config.active_record.default_timezone

I've just removed them and all is working fine again.

Problem

I am going crazy with the following error. I have a User class and two of its attributes (birthday & created_at => datetime) returns always nil besides it has a value on the database. I'm using devise to manage the authentication. This is the db table: ``` CREATE TABLE users ( id serial NOT NULL, email character varying(255) NOT NULL DEFAULT ''::character varying, encrypted_password character varying(255) NOT NULL DEFAULT ''::character varying, reset_password_token character varying(255), reset_password_sent_at timestamp without time zone, remember_created_at timestamp without time zone, sign_in_count integer NOT NULL DEFAULT 0, current_sign_in_at timestamp without time zone, last_sign_in_at timestamp without time zone, current_sign_in_ip character varying(255), last_sign_in_ip character varying(255), name character varying(255), lastname character varying(255), birthday timestamp without time zone, gender character varying(255), created_at timestamp without time zone, updated_at timestamp without time zone, authentication_token character varying(255), facebook_uid character varying(255), gplus_uid character varying(255), CONSTRAINT users_pkey PRIMARY KEY (id) ) WITH ( OIDS=FALSE ); ``` and this is the model ``` #encoding: utf-8 class User < ActiveRecord::Base has_many :user_benefits has_many :benefits, through: :user_benefits devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable validates :gender, :inclusion => { :in => %w(m f)} validates :email, email_format: { message: "Email invalido" } before_save :ensure_authentication_token def ensure_authentication_token if authentication_token.blank? self.authentication_token = generate_authentication_token end end def set_gender new_gender case new_gender.downcase when "male" self.gender = 'm' when "female" self.gender = 'f' when "m" self.gender = 'm' when "f" self.gender = 'f' else self.gender = nil end end def get_response { :auth_token=>self.authentication_token, :user => { :email=> self.email, :name=> self.name, :lastname=> self.lastname, :birthday=> self.birthday, :gender=> self.gender, :auth_token=> self.authentication_token, :created_at=> self.created_at, :updated_at=> self.updated_at, :facebook_uid=> self.facebook_uid, :gplus_uid=> self.gplus_uid } } end private def generate_authentication_token loop do token = Devise.friendly_token break token unless User.where(authentication_token: token).first end end end ``` When I call get_response I'm getting: ``` { auth_token: "fRoi1RPTuP64m55jXCSS" user: { email: "testg@habitues.com" name: "Lalo" lastname: "Landa" birthday: null gender: "m" auth_token: "fRoi1RPTuP64m55jXCSS" created_at: null updated_at: "2013-11-27T20:14:22.534-03:00" facebook_uid: null gplus_uid: null } new: false } ``` Someone has an idea? thanks

Original source