Rails de coulissage avec certains paramètres
Cette commande est mon problème:
/usr/local/bin/ruby **script/runner** --environment=production app/jobs/**my_job.rb** -t my_arg
`my_job.rb` is my script, which handles command line arguments. In this case it is `-t my_arg`.
my_job.rb
prend également `--environnement=production " comme argument, qui doit être le script/coureur de l'argument.
Je suppose que cela peut être résolu en utilisant des parenthèses, mais pas de se faire une idée.
Si la solution n'est pas tactile (ou) des Rails ou Linux mondiale de l'environnement, il serait beaucoup mieux.
/usr/local/lib/ruby/1.8/optparse.rb:1450:in `complete': invalid option: --environment=production (OptionParser::InvalidOption)
from /usr/local/lib/ruby/1.8/optparse.rb:1448:in `catch'
from /usr/local/lib/ruby/1.8/optparse.rb:1448:in `complete'
from /usr/local/lib/ruby/1.8/optparse.rb:1261:in `parse_in_order'
from /usr/local/lib/ruby/1.8/optparse.rb:1254:in `catch'
from /usr/local/lib/ruby/1.8/optparse.rb:1254:in `parse_in_order'
from /usr/local/lib/ruby/1.8/optparse.rb:1248:in `order!'
from /usr/local/lib/ruby/1.8/optparse.rb:1339:in `permute!'
from /usr/local/lib/ruby/1.8/optparse.rb:1360:in `parse!'
from app/jobs/2new_error_log_rt_report.rb:12:in `execute'
from app/jobs/2new_error_log_rt_report.rb:102
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `eval'
from /home/www/maldive/admin/releases/20120914030956/vendor/rails/railties/lib/commands/runner.rb:46
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from script/runner:3
OriginalL'auteur Benjamin | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
script/runner
ne pas prendre un chemin d'accès à un fichier, au lieu de cela, il prend un peu de Ruby qu'il s'exécute:Vous pouvez toujours configurer l'environnement Rails à l'aide d'une variable d'environnement, par exemple:
Si vous souhaitez exécuter une tâche complexe, il peut être préférable de l'écrire comme une tâche Rake. Par exemple, vous pouvez créer le fichier
lib/tasks/foo.rake
:Vous pouvez exécuter cette avec:
Et comme avec
script/runner
vous pouvez définir l'environnement en utilisant une variable d'environnement:Il est également possible de passer des arguments à une tâche Rake.
OriginalL'auteur georgebrock
Je suppose que vous êtes sur un vieux Rails basé sur
script/runner
je ne sais pas si cela fonctionne pour les anciens Rails " ou pas, mais dans les nouvelles Rails, vous pouvez simplementrequire 'config/environment'
, et il se charge de l'application. Ensuite, vous pouvez simplement écrire vos scripts.Par exemple, j'ai un script qui prend un argument, il imprime si elle a été fournie, puis imprime le nombre d'utilisateurs de mon application:
De fichier: application/emploi/my_job.rb
Appelant sans args:
De l'appel avec un arg abrégée:
De l'appel avec un arg de longue main:
OriginalL'auteur Joshua Cheek