7
votes

exiger que liber la tâche

J'ai un fichier alerte_import dans lib / modèles / alerte_import ', je voudrais utiliser dans ma tâche STH comme ceci: xxx pré>

dans ce code, je reçois une erreur: p>

ne peut pas trouver ../../lib/models/alert_importleight/Alert_IMPORTIMPORT J'ai: P>

desc "Send alerts about automate imports"

task :send_automate_alerts => :environment do
  require "#{Rails.root}/lib/models/alert_import"
  ai = AlertImport::Alert.new(2)
  ai.send_email_with_notifcations
end


1 commentaires

Votre chemin est faux alors.


5 Réponses :


1
votes

Votre chemin est faux, vous pouvez essayer:

task :send_automate_alerts => :environment do
 # STDERR.puts "Path is #{$:}"
  Rake.application.rake_require "#{Rails.root}/lib/models/alert_import"
  ai = AlertImport::Alert.new(2)
  ai.send_email_with_notifcations
end


2 commentaires

Works nécessite "# {rails.root} / lib / modèles / alerte_import" (ce n'est pas une erreur), mais ne peut pas voir le modèle: Uninitialisé constant alertimport :: alerte :: organisation (organisation est dans la base de données)


Je pense que l'erreur avec votre chemin est corrigée. Vous devez faire une autre question et accepter cette réponse si vous avez réparer l'erreur avec le chemin. Merci!



3
votes

Très probablement votre chemin qui ne va pas, vous pouvez faire comme suit xxx

"# {rails.root}" Cela vous donnera le chemin actuel de votre projet


1 commentaires

Ça n'aide pas j'ai un chemin correct mais le même problème



0
votes

Vérifiez-vous là-bas http://rake.rubyforge.org/classes/rake /Application.html#m000099 Définir le chemin correct


0 commentaires

9
votes

in rails 3.x, j'ai eu le succès en important d'abord le fichier à l'aide de Exiger code>, puis comprenant le module à l'espace de noms. Voici comment cela ressemblerait:

require 'models/alert_import'

namespace :alerts

  include AlertImport

  desc 'Send alerts about automate imports'
  task send_automate_alerts: :environment do
    ai = AlertImport::Alert.new(2)
    ai.send_email_with_notifcations
  end

end


0 commentaires

3
votes

J'ai essayé quelques options, qui essayaient notamment RAKE nécessitent , mais cela ressemble à la documentation pour rake_require est incorrect. Il n'inclut spécifiquement pas les fichiers qui ne se terminent pas dans .rake

donc à la fin, je l'ai fait "à partir de zéro" - quelque chose comme ça: `` `` xxx

fait.


0 commentaires