#ruby-on-rails #rake
#ruby-on-rails #rake
Вопрос:
Мне нужно создать повторяющуюся задачу, которая создает (или редактирует) записи о продукте из внешнего текстового файла. Изнутри irb:
>> f = File.open(<filename>) # file in same directory path
Проблем нет.
Но при вставке в файл задачи Rake скрипт всегда выдает сообщение «Файл не найден». (Rails 3.1, Ubuntu.)
namespace :sap do
desc "uploads data from raw SAP file"
task :upload => :environment do
f = File.open("sap_pnlist_20111010a.csv")
records = f.readlines
records.each {|row|
... etc etc ...
}
end
end
Предложения?
Комментарии:
1. Либо укажите полный путь, либо используйте
Rails.root.join
, если файл находится где-то внутри вашего Rails root.2. Это сделало свое дело. Спасибо, Джордан!
3. Почему бы вам не сделать это ответом?
Ответ №1:
Если файл находится где-то внутри вашего корневого каталога Rails, используйте
Rails.root.join('grandparent_dir', 'parent_dir', 'file.txt')
Если файл не находится в вашем корневом каталоге Rails, вы должны указать к нему полный путь.