Mon contrôleur data_files_controller.rbproblème de travail retardé dans les rails.
def upload_balances
DataFile.load_balances(params)
end
Mon modèle 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
Il fonctionne très bien. Maintenant, je veux utiliser mon travail avec retard contrôleur pour appeler mon action modèle comme .. Mon contrôleur data_files_controller.rb
def upload_balances
DataFile.send_later(:load_balances,params)
end
Est-il possible ?? Quelle est l'autre façon de le faire? Cela crée-t-il un problème?
Avec cette send_later j'obtiens cette erreur dans la colonne last_error dans la table delayed_job.
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'
Je reçois erreur sur la ligne
File.open(upload_file, "wb") { |f| f.write(params['Filedata'].read) }
en lisant params [ 'Filedata']. Lire.
comment vérifier que je reçois des données correctes dans params ['Filedata'] ou non? Sans send_later ça marche bien ... Y at-il une solution?
J'ai modifié mon message avec des erreurs. y-a-t'il une solution? –