В чем разница между средой rake и консольной средой?
Я пытаюсь заполнить базу данных mysql, используя файл csv с rails 3.1.0.Раньше это было очень просто с ActiveRecord :: Fixtures.К сожалению, крепление CSV амортизируется в рельсах 3.1.
Итак, я написал load_fixture.rb в моей конфигурации / инициализаторах, используя csv-mapper 0.5.1.Однако он не работает с
$ rake db:seed
. Начальный код работает без ошибок.Он просто не загружает никаких данных.
Когда я копирую начальный код в консоль rails или шаг огурца, он работает безупречно.Он даже работает с
> Rails.application.load_seed
в консоли rails.Как это может случиться?
load_fixture.rb:
require 'csv-mapper'
include CsvMapper
def load_fixture(file)
fname = File.basename file.chomp(File.extname file)
modelname = fname.camelize.singularize.constantize
results = import(file) do
map_to modelname
after_row lambda{|row, item| item.save! }
start_at_row 1
read_attributes_from_file
end
end
seed.rb (упрощенно)
load_fixture("path-to-csv-file")