使用load命令在Rails控制台中调用脚本时传递参数

时间:2015-02-26 17:31:47

标签: ruby-on-rails ruby command command-line-arguments rails-console

我知道使用ARGV数组访问命令参数,但我遇到了一个问题。我有一个脚本,我无法独立运行,而是需要在rails控制台中运行。有没有办法在调用文件时传递参数?

load '/tmp/test.rb'

我尝试将它放在引号内,在外面和一时兴起试过<无济于事。

感谢您提供任何帮助!

2 个答案:

答案 0 :(得分:2)

这是一个肮脏的黑客,但似乎你可以为ARGV分配数组,并根据你想要的加载脚本使用它:

$  Temp  cat argv.rb
p ARGV
$  Temp  irb
2.1.0 :001 > ARGV
 => []
2.1.0 :002 > load 'argv.rb'
[]
 => true
2.1.0 :003 > ARGV = ['A', 'B']
(irb):3: warning: already initialized constant ARGV
 => ["A", "B"]
2.1.0 :004 > load 'argv.rb'
["A", "B"]
 => true
2.1.0 :005 >

答案 1 :(得分:2)

你可以这样做:

bundle exec rails runner /tmp/test.rb argument1 argument2