0

私の VPS (Ubuntu 10.04LTS) には、RVM を介して ree-1.8.7-2011.03 と ruby​​-1.9.2-p180 がインストールされています。私の問題は、ree-1.8.7(irb) で Time.now を呼び出すと が得られ Thu May 12 12:16:50 +0200 2011、ruby-1.9.2(irb) で同じことをすると が得られること2011-05-12 12:17:44 +0200です。

問題は、日付の ree バージョンが Rails クエリで使用できないことです (生成された SQL は単純に壊れています)。すべてのクエリで strftime を使用して時刻をフォーマットすることは、現時点ではオプションではありません。また、1.9.2 に切り替えることもありません。そのため、なぜこれが起こっているのかを突き止めて修正するためにあなたの助けが必要です。

助けてくれてありがとう!

4

2 に答える 2

7

これは REE の問題ではありません。Ruby 1.9.2 では、Time#to_s のデフォルト形式が変更されています。

$ 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#to_s 形式に依存せず、常にカスタム ヘルパーまたはメソッドを使用して日付出力をフォーマットすることをお勧めします。そうしないと、情報の表示方法を制御できません。

現時点では、すべてのクエリで strftime を使用して時刻をフォーマットすることはできません

それはオプションであるべきであるだけでなく、あなたの最初の選択肢であるべきでした. カスタムの書式設定方法を使用するように既存のコードを修正することを強くお勧めします。

一時的な回避策は、Ruby 1.8.7 の Time#to_s メソッドをオーバーライドしてカスタム形式を使用することです。ただし、このような変更を行うと、他のライブラリが壊れる可能性があります。

于 2011-05-12T10:45:42.773 に答える
3

config/initializers/app.rb でこのようなものはどうですか

Time::DATE_FORMATS[:default] = "Your preferred date format"
于 2011-05-12T10:52:13.923 に答える