2015-12-17 25 views
3

我有一個像鋼軌信息文本參賽者

OptionParser.new do |opts| 
    opt.on("-h","--help","help") do 
    puts opts 
    end 
end.parse! 

一個腳本,但每當我打電話rails runner my_script.rb --help它顯示我幫助的軌道亞軍,而不是我的腳本。有沒有一種方法可以防止滑道選手吞嚥此選項?

回答

2

恐怕與亞軍,你不能做到這一點 - 爲自己的選擇,並在--help-h情況下,跑步者首先搜索它打印的幫助和退出甚至檢查腳本是否存在前:

# Railites: lib/rails/commands/runner 
opts.on("-h", "--help", 
    "Show this help message.") { $stdout.puts opts; exit } 

然而,你可以通過簡單地不使用亞軍和寫純寶石劇本來解決這個問題:

#!/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