Используя ActiveRecord :: Base.transaction в граблях? - PullRequest
0 голосов
/ 27 мая 2010

Я пишу задачу rake, которая в какой-то момент использует собственный метод импорта файла YAML для заполнения базы данных.

Задание с граблями выглядит так:

desc "Seed the database with production/ data."
task :production => :environment do     
  import_yaml 'seed/production'
end

В какой-то момент в коде импорта у меня есть:

ActiveRecord::Base.transaction do

Попытка запустить броски задачи с граблями:

You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]

Трассировка стека указывает на вышеупомянутую строку в коде.

Есть ли способ создания ActiveRecord :: Base во время рейка?

Спасибо!

1 Ответ

3 голосов
/ 27 мая 2010

может быть, вы не включили «среду» в задачу rake?

грабли не могут получить доступ к rails.cache

task (:my_rake_task => :environment) do
    # ....
end

без среды =>: у вас не будет доступа ни к одной из моделей вашего приложения rails

...