簡體   English   中英

如何在Rails Rake任務中使用File.open?

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

我需要創建一個定期任務,該任務從外部文本文件創建(或編輯)產品記錄。 從內部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

有什么建議嗎?

如果文件位於Rails根目錄內,請使用

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

如果該文件不在您的Rails根目錄中,則必須為其提供完整路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM