仲間のオーバーフラワー、
次の形式の日付を含むタブ区切りのcsvファイルがあります。
30-11-2011 2:24
csvをFasterSCV
gemで解析しています。この情報をとして保存する移行を作成しましたdatetime
。それを行うべきですか、それとも定義してstring
、Ruby
取得するたびに変換する必要がありますか?
いくつかのFasterCSV
コンバーターを定義する必要がありますか?
ありがとう...
仲間のオーバーフラワー、
次の形式の日付を含むタブ区切りのcsvファイルがあります。
30-11-2011 2:24
csvをFasterSCV
gemで解析しています。この情報をとして保存する移行を作成しましたdatetime
。それを行うべきですか、それとも定義してstring
、Ruby
取得するたびに変換する必要がありますか?
いくつかのFasterCSV
コンバーターを定義する必要がありますか?
ありがとう...
DateTimeは少し注意が必要です。厳密な形式です
irb(main):008:0> DateTime.now
=> Fri, 02 Dec 2011 22:14:57 +0100
しかし、あなたはこれを行うことができます
irb(main):015:0> t = DateTime.parse("30-11-2011 2:24").utc
=> Wed, 30 Nov 2011 02:24:00 +0000
irb(main):016:0> t.class
=> DateTime
これで、DateTimeオブジェクトができました。ただし、解析メソッドの最後のタイムゾーンに注意してください
データベースにデータを入力するときは、dbフォルダーのseeds.rbファイルを使用してください。私は通常、dbフォルダーにテキストファイルを作成し、エディターを使用して、すべてのタブを「|」に置き換えます。そして、各行の配列を作成します。これが次のようになっているとしましょう(これがtodoリストであると仮定して)
todoファイル
make hay|30-11-2011 2:24
fix tractor|24-11-2011 2:14
seeds.rbファイル
open("db/todo") do |todos|
todos.read.each_line do |todo|
n = todo.chomp.split("|")
Todo.create!(:entry => n[0], :at_date => DateTime.parse("#{n[1]}").utc)
end
end
次に実行します
rake db:seed
ルビーの魔法を作ろう!私はこのコードをテストしていませんが、正しい方向に進む可能性があります