Definindo o fuso horário no Rails

26 de Dezembro de 2006

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.

Posts relacionados
Rubygems no Ubuntu não funciona
Intype
Exibindo mensagens no Rails
Localização de mensagens de erro e datas no Rails
Colorindo o output dos testes no Rails

Comentários #

#1 Rodrigo Tassinari disse:
14 Jun 07, 12:35PM

Muito bom! Mas um problema com esta solução é que em muitas hospedagems o usuário não tem direitos suficiente no banco de dados para rodar "SET GLOBAL time_zone='-3:00'"...

#2 leonardofaria.net → Ruby on Rails na caveira! disse:
18 Dez 07, 10:47PM

[...] Defini

Deixe um comentário




Este blog usa o Gravatar.


Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.