我控制器data_files_controller.rb導軌中的作業延遲問題。
def upload_balances
DataFile.load_balances(params)
end
我的模型data_file.rb
def self.load_balances(params)
# Pull the file out of the http request, write it to file system
name = params['Filename']
directory = "public/uploads"
errors_table_name = "snapshot_errors"
upload_file = File.join(directory, name)
File.open(upload_file, "wb") { |f| f.write(params['Filedata'].read) }
# Remove the old data from the table
Balance.destroy_all
# ------ more code-----
end
它的正常工作。現在我想使用延遲的工作與我的控制器調用我的模型動作如.. 我控制器data_files_controller.rb
def upload_balances
DataFile.send_later(:load_balances,params)
end
是否有可能?有什麼其他的方式來做到這一點?它會產生什麼問題嗎?
有了這個send_later,我得到了delayed_job表中列last_error中的這個錯誤。
uninitialized stream
C:/cyncabc/app/models/data_file.rb:12:in `read'
C:/cyncabc/app/models/data_file.rb:12:in `load_balances'
C:/cyncabc/app/models/data_file.rb:12:in `open'
我上線
File.open(upload_file, "wb") { |f| f.write(params['Filedata'].read) }
得到錯誤,而讀PARAMS [ 'Filedata上'。閱讀。
如何檢查我得到正確的數據params ['Filedata']或不是? 沒有send_later它工作正常......有沒有解決方案?
我編輯了錯誤的帖子。有沒有解決方法? – 2010-06-15 21:53:16