开发者

How to use File.open inside a Rails Rake task?

I need to create a recurring task that creates (开发者_运维百科or edits) product records from an external text file. From inside irb:

>> f = File.open(<filename>) # file in same directory path

No issues.

But when pasted into a Rake task file, the script always bombs "File not found". (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

Suggestions?


If the file is somewhere inside your Rails root, use

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

If the file is not in your Rails root, you must give it the full path.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜