我正在尝试引用一个文件以使用RubyMine向其写入,但我在弄清楚它时遇到了问题。使用完整路径时,代码在使用RubyMine运行时会出错。当我使用相同的代码并在终端中运行它时,使用以下命令可以很好地运行代码:
ruby studio_game players.csv
如何才能在不指定RubyMine中的完整路径的情况下识别文件?
错误代码:
require_relative 'player'
require_relative 'game'
player1 = Player.new("moe")
player2 = Player.new("larry", 60)
player3 = Player.new("curly", 125)
knuckleheads = Game.new("Knuckleheads")
knuckleheads.load_players(ARGV.shift || 'players.csv')错误消息:
/Users/MNickey/.rvm/rubies/ruby-1.9.3-p448/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) "/Users/MNickey/RubymineProjects/PragmaticStudio/Stooges Game/studio_game"
/Users/MNickey/RubymineProjects/PragmaticStudio/Stooges Game/game.rb:83:in `readlines': No such file or directory - players.csv (Errno::ENOENT)
from /Users/MNickey/RubymineProjects/PragmaticStudio/Stooges Game/game.rb:83:in `load_players'
from /Users/MNickey/RubymineProjects/PragmaticStudio/Stooges Game/studio_game:9:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'发布于 2014-07-31 16:41:01
几乎可以肯定的是,knuckleheads.load_players(ARGV.shift || 'players.csv')是导致问题的原因。除非您已经为脚本配置了一个命令行参数的启动器,ARGV将为空,并且您将得到普通的'players.csv‘作为结果。
我非常确定,当您在命令行中运行脚本时,它是带参数运行的。
要在RubyMine中设置命令行参数,请转到运行/编辑配置,找到脚本的启动配置,然后将csv文件的路径添加到脚本参数输入框中。
https://stackoverflow.com/questions/25053485
复制相似问题