Как использовать File.open внутри задачи Rails Rake? - PullRequest
5 голосов
/ 12 октября 2011

Мне нужно создать повторяющуюся задачу, которая создает (или редактирует) записи продукта из внешнего текстового файла. Изнутри 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 Ответ

5 голосов
/ 19 сентября 2015

Если файл находится где-то внутри вашего корня Rails, используйте

Rails.root.join('grandparent_dir', 'parent_dir', 'file.txt')

Если файл не находится в вашем корне Rails, , вы должны указать ему полный путь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...