Когда вы проверяете "2010-04-16".to_i
, вы получаете 2010. Таким образом, вы звоните DateTime.new(2010)
и получаете результат, который видите.
Вы не можете использовать саму строку, с DateTime.new("2010-04-16")
вы получаете типошибка.
Но Yaml конвертирует уже в дату, когда он анализирует 2010-04-16
, поэтому я думаю, что вы можете использовать post['created_at'].to_datetime
Пример полного необработанного рубина:
require 'yaml'
require 'date'
post = YAML.load('created_at: 2010-04-16')
p post['created_at'] #-> #<Date: 2010-04-16 ((2455303j,0s,0n),+0s,2299161j)>
p post['created_at'].to_datetime #-> #<DateTime: 2010-04-16T00:00:00+00:00 ((2455303j,0s,0n),+0s,2299161j)>
Ваш seed.rb может выглядеть как
created_at: post['created_at'].to_datetime