Gravação data com Oracle+calendar_date_select

15 views
Skip to first unread message

Julianog12

unread,
Nov 6, 2009, 10:19:59 AM11/6/09
to rails-br
Pessoal boa tarde,

estou com um problema na hora da gravação da data no banco de dados.

segue meu environment.rb
config.gem "calendar_date_select"



Meu application.html.erb
<%= javascript_include_tag :defaults %>
<%= calendar_date_select_includes "blue", :locale => 'pt' %>



meu form de cadastro onde tenho o campo com o calendar_date_select
<th><%= f.label :dtprevisao_termino, "Prev.Término" %></th>
<td><%= f.calendar_date_select :dtprevisao_termino %></td>


este é o formato que esta aparecendo na tela Novembro 13, 2009 01:00
PM
mas o que grava na base 13/11/2009 15:00:00,

ou seja, grava sempre 2 horas a mais na hora.


se alguém puder me ajudar agradeço


Estou usando ruby 1.8.6, e rails 2.3.3

Julianog12

unread,
Nov 6, 2009, 11:27:44 AM11/6/09
to rails-br
ninguém para me ajudar ae?

Mauricio Linhares

unread,
Nov 6, 2009, 11:35:48 AM11/6/09
to rail...@googlegroups.com
O rails está gravando em UTC provavelmente, altere o timezone da sua
aplicação pro timezone que voçê quer.

Enviado de meu iPhone

Julianog12

unread,
Nov 6, 2009, 11:56:42 AM11/6/09
to rails-br
oi mauricio, realmente funcionou legal, coloquei timezone UTC, estava
usando Brasilia..

Agora estou com o formato Novembro 13, 2009 01:00, para mudar para
formato 13/11/2009 13:00:00 teria que passar para o formato italian
conforme manual q li na web..
Só que dae ele começa a se perder, tipo, gravo 13/11/2009 13:00:00, e
ele grava no banco 11/13/2009 13:00:00

como que eu fiz..

na view
<%= calendar_date_select_includes "silver", :locale => 'pt' %>
<%= javascript_include_tag "calendar_date_select/format_italian" %>

no environment
CalendarDateSelect.format = :italian

Porque sera que ele muda o dia com o mes?

um abraço







On 6 nov, 14:35, Mauricio Linhares <linhares.mauri...@gmail.com>
wrote:
> O rails está gravando em UTC provavelmente, altere o timezone da sua  
> aplicação pro timezone que voçê quer.
>
> Enviado de meu iPhone
>

Rafa - www.cearaonrails.org

unread,
Nov 6, 2009, 2:02:07 PM11/6/09
to rail...@googlegroups.com
usa o formato db =), e deixa o calendario sempre ativo para não
mostrar no input text o formato da data desconfigurado

2009/11/6 Julianog12 <julia...@hotmail.com>:

Julianog12

unread,
Nov 6, 2009, 2:42:36 PM11/6/09
to rails-br
o Rafa, fucnionou legal como vc falou, só que gostaria de mostrar no
formato brasileiro!!
será que existe alguma opção?

On 6 nov, 17:02, "Rafa - www.cearaonrails.org" <rafas2el...@gmail.com>
wrote:
> usa o formato db =), e deixa o calendario sempre ativo para não
> mostrar no input text o formato da data desconfigurado
>
> 2009/11/6 Julianog12 <juliano...@hotmail.com>:

Targino Silveira

unread,
Nov 6, 2009, 2:52:37 PM11/6/09
to rail...@googlegroups.com
Juliano, via SQL a instrução é to_date('2003/07/09', 'dd/mm/yyyy') ou to_date('2003/07/09', 'dd/mm/rrrr') desde a versão 8i ate a 11g que é a ultima.

Att,
 
targino_silveira
{
:fone => +55-85-86267297,
:twitter => @targinosilveira / http://twitter.com/targinosilveira,
:recomende_me_como_um_profissional_ruby_on_rails =>
http://www.workingwithrails.com/person/17102-targino-silveira,

:yahoo_messenger => targino_...@yahoo.com.br,
:msn_messenger => targino...@ubbi.com.br
}


puts "A vida é um grande comércio, onde você recebe por aquilo que você paga."



De: Julianog12 <julia...@hotmail.com>
Para: rails-br <rail...@googlegroups.com>
Enviadas: Sexta-feira, 6 de Novembro de 2009 16:42:36
Assunto: [rails-br] Re: Gravação data com Oracle+calendar_date_select


o Rafa, fucnionou legal como vc falou, só que gostaria de mostrar no
formato brasileiro!!
será que existe alguma opção?



Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes

Julianog12

unread,
Nov 6, 2009, 5:59:27 PM11/6/09
to rails-br
oi targino, eu não entendi direito, estou querendo mostrar na tela o
resultado 06/11/2009 17:50 por exemplo,
e não 2003/07/09

On 6 nov, 17:52, Targino Silveira <targino_silve...@yahoo.com.br>
wrote:
> Juliano, via SQL a instrução é to_date('2003/07/09', 'dd/mm/yyyy') ou to_date('2003/07/09', 'dd/mm/rrrr') desde a versão 8i ate a 11g que é a ultima.
>
> Att,
>
>  targino_silveira
> {
> :fone => +55-85-86267297,
> :twitter => @targinosilveira /http://twitter.com/targinosilveira,
> :recomende_me_como_um_profissional_ruby_on_rails =>http://www.workingwithrails.com/person/17102-targino-silveira,
>
> :yahoo_messenger => targino_silve...@yahoo.com.br,
> :msn_messenger => targinosilve...@ubbi.com.br
>
> }
>
> puts "A vida é um grande comércio, onde você recebe por aquilo que você paga."
>
> ________________________________
> De: Julianog12 <juliano...@hotmail.com>
> Para: rails-br <rail...@googlegroups.com>
> Enviadas: Sexta-feira, 6 de Novembro de 2009 16:42:36
> Assunto: [rails-br] Re: Gravação data com Oracle+calendar_date_select
>
> o Rafa, fucnionou legal como vc falou, só que gostaria de mostrar no
> formato brasileiro!!
> será que existe alguma opção?
>
>       ____________________________________________________________________________________
> Veja quais são os assuntos do momento no Yahoo! +Buscadoshttp://br.maisbuscados.yahoo.com

Julianog12

unread,
Nov 7, 2009, 10:29:44 AM11/7/09
to rails-br
poxa, ninguém aqui usa CalendarDateSelect?

G. Sobrinho

unread,
Nov 7, 2009, 10:37:32 AM11/7/09
to rail...@googlegroups.com
I18n.l

<p>Data <%= l record.data %></p>

2009/11/7 Julianog12 <julia...@hotmail.com>



--
Cordialmente,

Gabriel Sobrinho
Diretor de desenvolvimento

Hite - Comunicação Digital e Mídia Interativa
http://www.hite.com.br/

+55 31 8775 8378

Ivan H. Schuster

unread,
Nov 7, 2009, 10:38:13 AM11/7/09
to rail...@googlegroups.com
Já tentou utilizar o plugin Brazilian Rails?

Abs,

Ivan
Julianog12 escreveu:

Julianog12

unread,
Nov 7, 2009, 10:41:29 AM11/7/09
to rails-br
oi ivan, estou usando, mas estou usando o calendar_date_select, e acho
isto esta fazendo ele se perder!!!!

estou usando desta maneira
<tr>
<th><%= f.label :dtinicio, "DT.Inicio"%></th>
<td><%= f.calendar_date_select :dtinicio %></
td>
</tr>
<tr>
<th><%= f.label :dtprevisao_termino,
"Prev.Término" %></th>
<td><%=
f.calendar_date_select :dtprevisao_termino %></td>
</tr>

tipo assim, o formato na tela esta 07/11/2009 13:00:00 por exemplo,
e quando mando gravar ele grava 11/07/2009 13:00:00

cara, estou uma semana nisto ja!!!

Julianog12

unread,
Nov 7, 2009, 10:46:10 AM11/7/09
to rails-br
Ivan, meu environment esta assim:

config.time_zone = 'UTC'
config.i18n.default_locale = "pt-BR"
config.gem "calendar_date_select"
config.gem "brazilian-rails"

end

CalendarDateSelect::FORMATS[:my_custom] = {
:date => "%d/%m/%Y",
:time => " %H:%M:%S",
:javascript_include => "format_my_custom"
}

require 'paperclip'

WillPaginate.enable_actionpack
WillPaginate::ViewHelpers.pagination_options[:prev_label] = 'Anterior'
WillPaginate::ViewHelpers.pagination_options[:next_label] =
'Pr&oacute;ximo'

CalendarDateSelect.format = :my_custom


eo meu format_my_custom.js esta assim:
Date.prototype.toFormattedString = function(include_time){
str = Date.padded2(this.getDate()) + '/' + Date.padded2
(this.getMonth() + 1) + '/' + this.getFullYear();
if (include_time) { hour=this.getHours(); str += " " +
this.getAMPMHour() + ":" + this.getPaddedMinutes() + ":" + "00" }
return str;
}

Date.parseFormattedString = function (string) {
var regexp = '([0-9]{1,2})/(([0-9]{1,2})/(([0-9]{4})( ([0-9]{1,2}):
([0-9]{2}):([0-9]{2})? *)?)?)?';
var d = string.match(new RegExp(regexp, "i"));
if (d==null) {
return Date.parse(string); // Give javascript a chance to
parse it.
}
dmy = d[1].split('/');
hrs = 0;
mts = 0;
if(d[7] != null) {
hrs = parseInt(d[7].split(':'), 10);
mts = d[8].split(':');
}
return new Date(d[5], dmy, parseInt(d[3], 10)-1, hrs, mts, 0);
}



On 7 nov, 13:38, "Ivan H. Schuster" <ihschus...@gmail.com> wrote:

Julianog12

unread,
Nov 9, 2009, 7:39:20 AM11/9/09
to rails-br
Pessoa bom dia,
ainda não consegui resolver este problema!!!!

On 7 nov, 13:46, Julianog12 <juliano...@hotmail.com> wrote:
> Ivan, meu environment esta assim:
>
>   config.time_zone = 'UTC'
>   config.i18n.default_locale = "pt-BR"
>   config.gem "calendar_date_select"
>   config.gem "brazilian-rails"
>
> end
>
> CalendarDateSelect::FORMATS[:my_custom] = {
>   :date => "%d/%m/%Y",
>   :time => " %H:%M:%S",
>   :javascript_include => "format_my_custom"
>
> }
>
> require 'paperclip'
>
> WillPaginate.enable_actionpack
> WillPaginate::ViewHelpers.pagination_options[:prev_label] = 'Anterior'
> WillPaginate::ViewHelpers.pagination_options[:next_label] =
> 'Próximo'

Ivan Schuster

unread,
Nov 9, 2009, 8:20:31 AM11/9/09
to rail...@googlegroups.com
Juliano, infelizmente não sei mais em que te ajudar. :-(
Eu utilizo o Brazilian Rails e simplesmente faço @var_instância.data = @var_instância.data.to_s_br e funfa sem problemas.

Abs,

Ivan

2009/11/9 Julianog12 <julia...@hotmail.com>

Julianog12

unread,
Nov 9, 2009, 8:33:50 AM11/9/09
to rails-br
Ivan,
fiz um altera datas dentro do controller com o seguinte código:

def altera_datas
puts "teste "
puts "teste "
puts params[:thelpdesk_ocorrencia][:dtinicio].to_time
puts params[:thelpdesk_ocorrencia][:dtprevisao_termino].to_time
@thelpdeskocorrencia.dtinicio = params
[:thelpdesk_ocorrencia][:dtinicio].to_time
@thelpdeskocorrencia.dtprevisao_termino = params
[:thelpdesk_ocorrencia][:dtprevisao_termino].to_date
@thelpdeskocorrencia.dtprevisao_termino =
@thelpdeskocorrencia.dtprevisao_termino
puts @thelpdeskocorrencia.dtprevisao_termino
puts @thelpdeskocorrencia.dtinicio
end

ele faz a conversão para 2009-11-07 09:09 por exemplo e grava ok!!!
agora quando coloco dia 13, ele joga com null!!!

como se ele tivesse considerando o 13 como o mes na hora da
conversão!!!!


to desconfiado que é este format_my_custom.js que esta bagunçando!!!
segue o código do environment e do format_my_custom.js


Environment
> 2009/11/9 Julianog12 <juliano...@hotmail.com>

Ivan Schuster

unread,
Nov 9, 2009, 9:56:43 AM11/9/09
to rail...@googlegroups.com
Já tentaste testar no script/console  ou com "debugger"?

Abs,

Ivan

2009/11/9 Julianog12 <julia...@hotmail.com>

Julianog12

unread,
Nov 9, 2009, 10:00:01 AM11/9/09
to rails-br
bom, vou tentar com o script/console agora.
Como o debugger não conheço ivan!!!

Ja retorno.

On 9 nov, 12:56, Ivan Schuster <ihschus...@gmail.com> wrote:
> Já tentaste testar no script/console  ou com "debugger"?
>
> Abs,
>
> Ivan
>
> 2009/11/9 Julianog12 <juliano...@hotmail.com>

Ivan Schuster

unread,
Nov 9, 2009, 10:53:50 AM11/9/09
to rail...@googlegroups.com
Carrega o web server com a opção --debugger

"ruby script/server --debugger"

Onde tu colocares o comando "debugger" (view, model, ...)  a execução do programa entra em "halt"  e permite que examines o conteúdo das variáveis, executes comandos, etc.
O comando "cont"  retoma a execução do programa.
Funciona também em ambiente de teste.

Abs,

Ivan
2009/11/9 Julianog12 <julia...@hotmail.com>

Julianog12

unread,
Nov 9, 2009, 11:02:09 AM11/9/09
to rails-br
show ivan, vou fazer isto

On 9 nov, 13:53, Ivan Schuster <ihschus...@gmail.com> wrote:
> Carrega o web server com a opção --debugger
>
> "ruby script/server --debugger"
>
> Onde tu colocares o comando "debugger" (view, model, ...)  a execução do
> programa entra em "halt"  e permite que examines o conteúdo das variáveis,
> executes comandos, etc.
> O comando "cont"  retoma a execução do programa.
> Funciona também em ambiente de teste.
>
> Abs,
>
> Ivan
> 2009/11/9 Julianog12 <juliano...@hotmail.com>

Julianog12

unread,
Nov 9, 2009, 11:23:09 AM11/9/09
to rails-br
Ivan, olha só, tentei agora no controller coloca o seguinte código
def update
@thelpdeskocorrencia = ThelpdeskOcorrencia.find(params[:id])
altera_datas




def altera_datas
puts @thelpdeskocorrencia.dtinicio
puts @thelpdeskocorrencia.dtprevisao_termino
@thelpdeskocorrencia.dtinicio =
converte_data_pad_americano(params[:thelpdesk_ocorrencia][:dtinicio])
if !params[:thelpdesk_ocorrencia][:dtinicio].blank?
@thelpdeskocorrencia.dtprevisao_termino =
converte_data_pad_americano(params[:thelpdesk_ocorrencia]
[:dtprevisao_termino]) if !params[:thelpdesk_ocorrencia]
[:dtprevisao_termino].blank?
puts @thelpdeskocorrencia.dtinicio
puts @thelpdeskocorrencia.dtprevisao_termino
end


def converte_data_pad_americano(data)
a = data.split('/')
b = a[2].split(' ')
c = "#{b[0]}-#{a[1]}-#{a[0]} #{b[1]}".to_time
return c
end


e a dtinicio ja vem nill da tela naquele primeiro puts
@thelpdeskocorrencia.dtinicio!!!
Sendo que o campo na tela esta com 13/11/2009 14:19:00!!


muito estranho

Ivan Schuster

unread,
Nov 9, 2009, 3:34:11 PM11/9/09
to rail...@googlegroups.com
A variável que recebe do find não deveria ser @thelpdesk_ocorrencia?
Falta o "underscore". Está @thelpdeskocorrencia
Parece que estás jogando os dados da tela em uma variável e trabalhando com outra.

Abs,

Ivan

2009/11/9 Julianog12 <julia...@hotmail.com>

Julianog12

unread,
Nov 9, 2009, 4:20:34 PM11/9/09
to rails-br
ivan, descobri a kaka que eu estava fazendo!!!!
invés de pegar o params[thelpesk_ocorrencia][dtinicio], estava pegando
@thelpdesk_ocorrencia.dtinicio!!!
pracaba cara, não acredito que perdi 2semanas praticamente nisto!!!

fiz assim no controller especifico

def altera_datas
params[:thelpdesk_ocorrencia][:data] = converte_data_pad_americano
(params[:thelpdesk_ocorrencia][:data]) if !params
[:thelpdesk_ocorrencia][:data].blank?
end

e no application_controller.rb fiz assim:
def converte_data_pad_americano(data)
a = data.split('/')
b = a[2].split(' ')
c = "#{b[0]}-#{a[1]}-#{a[0]} #{b[1]}"
return c
end


não sei se é a forma certa cara, mas pelo menos funcionou!!!


agora estou tentando resolver o mesmo problema para
accepts_nested_attributes_for, não sei em que momento no controller ou
no model vou pegar a data de uma tabela filha para fazer aquele
converte_data_pad_americano!!!


um abraço


Ivan, obrigadão..



On 9 nov, 18:34, Ivan Schuster <ihschus...@gmail.com> wrote:
> A variável que recebe do find não deveria ser @thelpdesk_ocorrencia?
> Falta o "underscore". Está @thelpdeskocorrencia
> Parece que estás jogando os dados da tela em uma variável e trabalhando com
> outra.
>
> Abs,
>
> Ivan
>
> 2009/11/9 Julianog12 <juliano...@hotmail.com>
> ...
>
> mais »
Reply all
Reply to author
Forward
0 new messages