我正在使用Sinatra作为在本地主机上运行的桌面应用程序。当我启动它时,我想传递一个像这样的选项ruby mysinatra.rb -first_name="My Name"
然而,我一直得到无效选项错误。我想我得到它是因为Sinatra本身接受端口等选项。例如,当我运行ruby mysinatra.rb -h
时,我得到的输出(见下文)是Sinatra接受的所有选项。
注意事项:每次运行应用程序时,传入的选项都会改变,所以它必须方便,不能硬编码到文件中。
这是运行ruby mysinatra.rb
的输出
Usage: main [options]
-p port set the port (default is 4567)
-s server specify rack server/handler
-q turn on quiet mode (default is off)
-x turn on the mutex lock (default is off)
-e env set the environment (default is development)
-o addr set the host (default is (env == 'development' ? 'localhost' : '0.0.0.0'))
字符串
1条答案
按热度按时间8cdiaqws1#
有两种方法:
1.在
require
Sinatra库之前解析选项。确保从ARGV中删除任何个人选项字符串,以便常规Sinatra选项仍然有效(如果这是您的首选项)。optparse
库进行自己的选项处理。该库接受字符串--
来指定选项的结束。因此,您可以这样做:字符串
如果你现在看ARGV,它看起来像这样:
型
从这里你可以做任何你喜欢的ARGV选项处理。