Question

Je souhaite exécuter un script Ruby autonome dans lequel j'ai besoin de mon environnement RoR. Plus précisément, j'ai besoin que mes modèles étendent ActionMailer et ActiveRecord. J'ai également besoin de lire la configuration de la base de données à partir de mon database.yml. Comment puis-je m'y prendre?

Était-ce utile?

La solution

Le moyen le plus simple est de changer le shebang de votre script en:

#!/usr/bin/ruby

à

#!/path/to/your/rails/script/runner

Et voilà, votre script sera exécuté avec l’environnement complet de rails chargé. Vous pouvez également exécuter votre script en tant que ./ my_script -e production pour l'exécuter avec la base de données de production.

Autres conseils

Découvrez ce sujet: Comment puis-je exécuter des tâches Ruby qui utilisent mes Rails modèles?

En gros, cela revient à:

require "#{ENV['RAILS_ROOT']}/config/environment.rb"

Amusez-vous!

Je pense que le meilleur moyen de le faire est d'en faire une tâche de commission.

   # lib/tasks/mystuff.rake
   desc 'do my stuff'
   task :my_stuff => [:environment] do
     # do my stuff
   end

La strophe [: environment] charge l'environnement des rails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top