rails 跑步者的信息文本
Informational text for rails runners
我有一个像
这样的脚本
OptionParser.new do |opts|
opt.on("-h","--help","help") do
puts opts
end
end.parse!
但是每当我调用 rails runner my_script.rb --help
时,它都会向我显示对 rails 运行程序的帮助,而不是我的脚本。有什么办法可以防止 rails runner 吞掉这个选项吗?
恐怕你不能用 runner 做到这一点 - runner 首先搜索它自己的选项,如果是 --help
或 -h
它甚至在检查你的脚本是否存在之前打印帮助并退出与否:
# Railites: lib/rails/commands/runner
opts.on("-h", "--help",
"Show this help message.") { $stdout.puts opts; exit }
然而,您可以通过根本不使用运行器并编写纯 ruby 脚本来解决这个问题:
#!/usr/bin/env ruby
require 'optparse'
environment = 'development'
OptionParser.new do |opts|
opt.on("-e", "--environment") do |v|
environment = v
end
opt.on("-h","--help","help") do
puts opts
end
end.parse!
# RAILS_ENV is used by environment.rb file to load correct configuration
ENV['RAILS_ENV'] = environment
# Load your rails application
require_relative "../config/environment.rb"
puts User.count # Your code here
我有一个像
这样的脚本OptionParser.new do |opts|
opt.on("-h","--help","help") do
puts opts
end
end.parse!
但是每当我调用 rails runner my_script.rb --help
时,它都会向我显示对 rails 运行程序的帮助,而不是我的脚本。有什么办法可以防止 rails runner 吞掉这个选项吗?
恐怕你不能用 runner 做到这一点 - runner 首先搜索它自己的选项,如果是 --help
或 -h
它甚至在检查你的脚本是否存在之前打印帮助并退出与否:
# Railites: lib/rails/commands/runner
opts.on("-h", "--help",
"Show this help message.") { $stdout.puts opts; exit }
然而,您可以通过根本不使用运行器并编写纯 ruby 脚本来解决这个问题:
#!/usr/bin/env ruby
require 'optparse'
environment = 'development'
OptionParser.new do |opts|
opt.on("-e", "--environment") do |v|
environment = v
end
opt.on("-h","--help","help") do
puts opts
end
end.parse!
# RAILS_ENV is used by environment.rb file to load correct configuration
ENV['RAILS_ENV'] = environment
# Load your rails application
require_relative "../config/environment.rb"
puts User.count # Your code here