Parmi ces approches mentionnées précédemment, aucune ne semblait propre et idéale comme on s'attendrait à ce qu'un script autonome s'exécute (ne pas être évalué ou canalisé via une < redirection), mais finalement cela fonctionne parfaitement pour moi :
(pour Rails 3)
Insérer en haut de votre script :
#!/usr/bin/env ruby
APP_PATH = File.expand_path(appdir = '/srv/staging/strat/fundmgr/config/application', __FILE__)
require File.expand_path(appdir + '/../boot', __FILE__)
require APP_PATH
# set Rails.env here if desired
Rails.application.require_environment!
# your code here...
Bien entendu, définissez votre propre chemin d'accès à l'application Rails dans la ligne APP_PATH.
De cette façon, je peux éviter d'avoir à entrer des données interactives. irb
o rails c
et peut tester mon script.rb à partir de l'invite du shell, avant de le programmer dans la crontab.
Il prend également en charge les paramètres de la ligne de commande et minimise les niveaux d'enveloppes avant d'atteindre votre code.
CREDIT (montre également un exemple Rails 2)
http://zerowidth.com/2011/03/18/standalone-script-runner-bin-script-dans-rails.html
0 votes
Duplicata possible de Comment exécuter un fichier Ruby dans un environnement Rails ?