Comment exécuter des commandes dans les tâches Rake?
J'ai le râteau des tâches dans mon application rails. je veux exécuter une ligne de commande commandes dans la tâche rake. comment puis-je faire cela. j'ai essayé par la suite, mais ne parvient pas
desc "Sending the newsletter to all the users"
task :sending_mail do
run "cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v"
system "cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v &"
end
Au-dessus de la commande exécuter jette méthode run undefined & Système de commande de ne pas jeter de toutes les erreurs mais pas exécuté.
source d'informationauteur palani
Vous devez vous connecter pour publier un commentaire.
Ce lien peut vous aider à exécuter la ligne de commande de commande en ruby ...
http://zhangxh.net/programming/ruby/6-ways-to-run-shell-commands-in-ruby/
L'appel des commandes shell à partir de Ruby
http://blog.jayfields.com/2006/06/ruby-kernel-system-exec-and-x.html
La
sh
Râteau intégré est probablement la meilleure méthode:L'interface est similaire à
Kernel.system
mais:echo b
run
est utilisé par Capistrano et d'autres choses pour le lancement des commandes, mais Râteau souvent fait usage deKernel#system
à la place.Votre commande peut être en cours d'exécution, mais pas de travail. Pourquoi ne pas faire un wrapper script shell, vous pouvez tester de façon indépendante, ou d'essayer et le coup d'envoi en utilisant le chemin d'accès complet:
Il semble étrange d'avoir votre script n'est pas dans
scripts/
La
system
appel doit retournertrue
sur la réussite. Si ce n'est pas le cas, le script a retourné un code d'erreur, ou la commande n'a pas pu être exécuté.