fc2ブログ

2023.04 «  - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - » 2023.06
TOP > CATEGORY > [2.1]その他

TOP

Rails 2.1・その12(DBに登録してあるUTC日付データを簡単変換) 

2008年06月08日 ()
Rails2.1で日時(timestamp)カラムをテーブルに作ってセーブするとUTC時間で記録されます。

それは、なぜかというと

config/environment.rb ファイルに

config.time_zone = 'UTC'



と書いてあるからです。

今回は、この 'UTC' という値がミソになります。

これを 'Tokyo' に変えても、DB にはやっぱりUTC時間で記録されます。

じゃあ何が違うんですか?っていうと、モデルを使用して値を取ってくると設定したタイムゾーンでの値となります。

例えば、
UTC的に言うと 2008/06/08 02:52:00 だったら

タイムゾーンがUTCの場合は
 Sun, 08 Jun 2008 02:52:00 UTC +00:00
を取得し、
タイムゾーンがTokyoの場合は
 Sun, 08 Jun 2008 11:52:00 JST +09:00
を取得します。

ところで、config/environment.rb ファイルではなく、たとえばコントローラでタイムゾーンを改めて設定したくなっちゃったー、という時は、

Time.zone = 'Tokyo'



という指定の仕方もできます。ruby にそもそも備わっている Time.now.zone と混乱しないように注意しなくちゃなりませんね。


ところで、このタイムゾーンの名前ですが、

rake time:zones:all


で全て参照できます。自分のローカルのタイムゾーンは、

rake time:zones:local


で参照できます。


最後に、もう国際化とか関係ないからDBにもとにかくUTCじゃなくて日本時間(自分のローカル時間)を記録させてくれ、という場合は、
config/environment.rb の先ほどの行をコメントアウトしましょう。

# config.time_zone = 'UTC'




【広告】

スポンサーサイト



[2008.06.08(Sun) 12:08] [2.1]その他Trackback(0) | Comments(1) 見る▼
↑TOPへ


COMMENT

感謝 by そう
ありがとう!

コメントを閉じる▲

Rails 2.1・その9(Rails2.1がリリースされました!) 

2008年06月02日 ()
パンパカパーン

Rails 2.1 が正式にリリースされました。

# gem update rails


をすると、Rails 2.0.2 から Rails 2.1.0 にアップデートしてくだすったのです。

Updating installed gems
Bulk updating Gem source index for: http://gems.rubyforge.org/
Updating rails
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed activesupport-2.1.0
Successfully installed activerecord-2.1.0
Successfully installed actionpack-2.1.0
Successfully installed actionmailer-2.1.0
Successfully installed activeresource-2.1.0
Successfully installed rails-2.1.0
Gems updated: activesupport, activerecord, actionpack, actionmailer, activeresource, rails



わーい。

でもこれで2.0.2がデフォルトでは使えなくなってもうたですね。なのでその場合、バージョンを指定しつつ Rails プロジェクトを新規作成しましょう!

# rails _2.0.2_ myproject



これだけで、古いバージョンを指定してRailsプロジェクトを作ることができます。
(ただし自分のマシンにきちんと古いバージョンのactiverecordファイルとかが gem install(update) でインストールされていないといけませんが。)

【広告】

[2008.06.02(Mon) 17:11] [2.1]その他Trackback(0) | Comments(0) 見る▼
↑TOPへ

Rails 2.1・その2(dbconsole) 

2008年05月23日 ()
Special Thanks to a_matsudaさん
-------------------------------------------
script/dbconsole というコマンドが増えました。

config/database.yml ファイルを見て自動的に db につなげて、コマンドラインでSQLを操作する状態まで持って行ってくれます。

こいつはスゲーや、とariue真っ青なコメントを思わず吐きたくなるほど、イカしたコマンドですね。

使い方は簡単、

# script/dbconsole



これだけで config/database.yml に書いてある(おそらく development 環境の)DB へつなぎにいってくれます。

対応DBは今のところ、mysql, postgresql, sqlite sqlite3 だけのようでございます。オラクルやSQL Serverファンの方、ごめんなさい。

引数に development, test, production などを指定すると、それぞれ開発環境、テスト環境、本番環境のDBにつなぎにいってくれるでしょう!

# script/dbconsole development
とか
# script/dbconsole test
とか
# script/dbconsole production
とか



結局の所、詳しいことは、vendor/rails/railties/lib/commands/dbconsole.rb ファイルを読むと書いてあります。

このファイルはそんなに長くないのでお父さんの新聞気分で、トイレに入りながらでも読むといいかもしれません。

【広告】

[2008.05.23(Fri) 00:40] [2.1]その他Trackback(0) | Comments(0) 見る▼
↑TOPへ

Rails 2.1・その1(エッジなソースのインストール) 

2008年05月22日 ()
Special Thanks to a_matsudaさん
-------------------------------------------
久しぶりの記事は、Rails2.1の新機能から!

まずはインストールをしてみましょう。

と言っても 2.1 が正式リリースされた訳ではないので gem update rails とはできないのですよね。

[追記 08/06/02 ここから]
gem update rails ができるようになりました!おめでとう。
詳しくは私のこのエントリを参考にどうぞ。
gem update rails をした後は、↓の手順を全く行わなくてよくなります。
[追記 08/06/02 ここまで]

その代わりに、rails アプリの vendor/rails ディレクトリの下に、Rails2.1版のソースコードをコピーします。

コピーの方法は、主に2通りあると思いますよ。

1.git でソースコードを持ってくる
2.git がインストールされていないので手動でソースコードを持ってくる

※ git とは、バージョン管理システムです。cvs, subversion, vss っぽいヤツです。っぽいといってもプロから言わせると全然別物らしいですが。


■1.git でソースコードを持ってくる

1-1.rails 2.0.2がインストールされているマシンで取り敢えず rails アプリを作ります

# rails edge



1-2.作った rails アプリの vendor ディレクトリに移動します

# cd edge/vendor



1-3.Rails2.1 RC1のページで、Clone URLと書いてある git アドレスを使ってソースコードをコピーしてくる。(その前に git アプリがインストールされてなくてはならんですけどね。)

# git clone git://github.com/rails/rails.git



1-4.コピーが必要なファイルを自動的にコピらせます。

# rake rails:update

↓が表示された。script/dbconsole がインストールされたらしい。がその他色々な箇所が更新されている。
install -c -m 0755 /home/roruser/edge/vendor/rails/railties/lib/tasks/../../bin/dbconsole script/dbconsole



1-おまけ1.rails ディレクトリの内容を最新にしたい時は vendor/rails ディレクトリで、次のコマンドを入れます。

# git pull



1-おまけ2.rails ディレクトリの内容をあるバージョンまで更新して、それ以上更新させないようにフリーズさせるには、 vendor/rails ディレクトリで、次のコマンドを入れます。

# git checkout バージョン(タグ)名


バージョン名の例として、今回は 2.1 の RC ですから、all tagsというところを参考にして、
v2.1.0_RC1
を使用するので
git checkout v2.1.0_RC1
と打っておくとよいかもしれませんね。




■2.git がインストールされていないので手動でソースコードを持ってくる

2-1.rails 2.0.2がインストールされているマシンで取り敢えず rails アプリを作ります

# rails edge



2-2.作った rails アプリの vendor ディレクトリに移動します

# cd edge/vendor



2-3.Rails2.1 RC1のページで、ダウンロードボタンのリンク先(http://github.com/rails/rails/tarball/v2.1.0_RC1)からアクセスできるURLの tar ファイルをゲットします。

# wget http://github.com/rails/rails/tarball/v2.1.0_RC1



2-4.ゲットした tar ファイルをそのまま解凍して、rails ディレクトリという名前に変更します。

# tar zxvf rails-rails-長い文字列.tar.gz
# mv rails-rails-長い文字列 rails



2-5.ゲットした tar ファイルを消します。

# rm rails-rails-長い文字列.tar.gz



2-6.コピーが必要なファイルを自動的にコピらせます。

# rake rails:update

↓が表示された。script/dbconsole がインストールされたらしい。がその他色々な箇所が更新されている。
install -c -m 0755 /home/roruser/edge/vendor/rails/railties/lib/tasks/../../bin/dbconsole script/dbconsole



2-おまけ.rails ディレクトリの内容を最新にしたい時は、またRails2.1 RC1のページで新しい tar.gz ファイルをダウンロードしてきて上の手順を繰り返しましょう。


でーす。ちょっと勇気を出せば簡単ですね。

【広告】

[2008.05.22(Thu) 18:58] [2.1]その他Trackback(0) | Comments(0) 見る▼
↑TOPへ

TOP