2011-07-28 4 views
3

시간 관련 계산을 광범위하게 사용하는 Ruby on 레일스 애플리케이션에서 루비 버전을 루비 1.8.7에서 루비 1.9.2로 업그레이드 중이다. 그러나 루비 1.9.2 -p290으로 전환 한 후에는 작동하지 않습니다. 나는 문제가 몇 가지 방법을 이러한 문제를 해결하기 위해 또는 변경하거나 이전에 1.9.2 형식으로 다시 기본 루비를 무시하거나 방법이 시간 관련 변경 사항을 해결하기 위해 할 수있는 방법을 말해 주시겠습니까루비에서 시간 형식이 다르다 1.9.2에서 루비 1.8.7로 인해 문제가 발생한다.

$ rvm use 1.8.7 

ruby-1.8.7-p334 :001 > Time.now 
=> Thu May 12 12:42:35 +0200 2011 

$ rvm use 1.9.2 

ruby-1.9.2-p180 :001 > Time.now 
=> 2011-05-12 12:42:44 +0200 

으로 추측 루비의 최신 버전. 당신이

Time.now.asctime 

1 EDIT

1.9에서 사용할 수있는

감사

답변

2

: 잘

, 당신은 그것을 사용하는거야 방법에 따라 달라집니다. 이것은 아마도 당신을 위해 일해야합니다

좋아, 나는 귀하의 질문에 다소 잘못 가지고 : 2

irb(main):001:0> class Time 
irb(main):002:1> class << self 
irb(main):003:2> alias :orig_now :now 
irb(main):004:2> 
irb(main):005:2* def now 
irb(main):006:3>  orig_now.asctime 
irb(main):007:3> end 
irb(main):008:2> end 
irb(main):009:1> end 
=> nil 
irb(main):010:0> Time.now 
=> "Thu Jul 28 12:29:08 2011" # STRING 
irb(main):011:0> 

편집 할 수 있습니다. 위의 패치를 사용하면 Time.now가 문자열 (Time 객체 아님)을 반환합니다. 당신은 단지 시간 객체가이 적용 할 수있는 다른 표현 될 보려면

: 귀하의 회신

irb(main):011:0> class Time 
irb(main):012:1> 
irb(main):013:1* def inspect 
irb(main):014:2> self.asctime 
irb(main):015:2> end 
irb(main):016:1> end 
=> nil 
irb(main):017:0> Time.now 
=> Thu Jul 28 13:41:16 2011 # TIME 
+0

감사합니다,하지만 난 모든 위치에서 계산을 변경하지 않는 방법이 있습니다 뭔가를하여 시간 형식을 덮어 쓰려면 기본 형식을 겹쳐 쓰거나 기본 형식을 변경하는 것과 같은 이니셜 라이저가 필요합니다. – Nishant

+0

코드로 이니셜 라이저 파일을 작성해야하며 언급 한대로 모든 위치에서 변경할 필요가 없습니다. 권리? – Nishant

+0

예, 이니셜 라이저 파일이 작동합니다. –