0

仲間のオーバーフラワー、

次の形式の日付を含むタブ区切りのcsvファイルがあります。 30-11-2011 2:24

csvをFasterSCVgemで解析しています。この情報をとして保存する移行を作成しましたdatetime。それを行うべきですか、それとも定義してstringRuby取得するたびに変換する必要がありますか?

いくつかのFasterCSVコンバーターを定義する必要がありますか?

ありがとう...

4

1 に答える 1

0

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

ルビーの魔法を作ろう!私はこのコードをテストしていませんが、正しい方向に進む可能性があります

于 2011-12-02T21:36:37.757 に答える