Definindo o fuso horário no Rails


Leia em menos de um minuto

Se você hospeda seu projeto em um servidor que não está alocado no Brasil, pode ter problemas com o fuso horário. Uma solução é fazer esta definição manualmente, tanto para o Rails, quanto para o MySQL.

No arquivo "environment.rb", adicione a seguinte linha:

ENV['TZ'] = 'America/Sao_Paulo'

No arquivo "application.rb", presente no diretório "app/controllers", adicione:

before_filter :set_timezone

def set_timezone
    ActiveRecord::Base.connection.execute "SET GLOBAL time_zone='-3:00'"
end

Uma outra solução possível, caso você seja o dono do servidor, é definir isso no arquivo "my.cfn". O grande problema é que isso não pode ser feito por usuários em planos compartilhados (isso é o que me foi dito pelo suporte da RailsPlayground). Veja mais informações sobre isto nos links abaixo.