Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 文件未出现在Heroku中-浏览Heroku内容_Ruby On Rails_Ruby_Heroku - Fatal编程技术网

Ruby on rails 文件未出现在Heroku中-浏览Heroku内容

Ruby on rails 文件未出现在Heroku中-浏览Heroku内容,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,我正在heroku上运行一个应用程序——它似乎运行得很好,我可以访问我的数据库。现在,我正在尝试运行“heroku rake db:seed”…它将一直运行,直到在我的代码中达到这一点 composersInput = IO.readlines("app\\data\\composers.txt") composersInput.length.times do |i| name, borndied, nationality, style, gender = composersInpu

我正在heroku上运行一个应用程序——它似乎运行得很好,我可以访问我的数据库。现在,我正在尝试运行“heroku rake db:seed”…它将一直运行,直到在我的代码中达到这一点

  composersInput = IO.readlines("app\\data\\composers.txt")
  composersInput.length.times do |i|
  name, borndied, nationality, style, gender = composersInput[i].split(':')
  yearBorn, yearDied = borndied.split('-')
  Composer.create!(:name => name, :year_born => yearBorn.to_i, :year_died => yearDied.to_i,
                   :nationality_id => nationality.to_i, :style_id => style.to_i, :gender => gender)
end
当它试图加载composers.txt时,我收到以下错误“没有这样的文件或目录-app\data\composers.txt”,我难以置信地不知道为什么。这段代码对我的本地副本运行良好,执行起来没有问题——我已经验证了composers.txt文件确实在我机器上的那个目录中,并且我验证了它们是否包含在git push to heroku中


我想知道是不是出了什么问题。我的IO语法?是否有一种方法可以让我浏览heroku应用程序的文件结构,从而验证文件是否确实存在?如果您有任何建议,我们将不胜感激:)heroku console是您的朋友

keith@Lucy:~/code/paperhat (master)$ heroku console
Ruby console for somesite.heroku.com
>> `ls .`
=> "Gemfile\nGemfile.lock\nREADME\nRakefile\napp\nconfig\ndb\nfeatures\ngenerate\nlib\nlog\npublic\nscript\nspec\ntmp\nvendor\n"
就格式而言,这并不可怕,但你至少可以看看你的heroku slug,看看发生了什么。顺便说一句,我可能会使用以下内容来访问您的配置文件,而不是您现有的配置文件:

Rails.root.join("app", "data", "composers.txt")

不再支持heroku控制台,而是必须使用“heroku运行命令”,即

请注意,这里这些是单引号(或双引号),而不是heroku控制台中使用的backtics。如果使用反勾号(heroku run
ls
),那么ls命令首先在本地运行,然后将文件名列表作为要运行的命令提供给heroku run

如果您的项目中有多个heroku应用程序,例如生产和登台,则可能需要将应用程序指定为目标(在.git/config文件中查找应用程序名称,或运行“heroku应用程序”):


卡玛瘾君子:谢谢你的回答:)这似乎是朝着有成效的方向迈出的一步。虽然现在看起来好像我有人做了一些非常惊人的事情,比如'ls'。不再返回目录列表!请确保使用反引号,而不是常规引号。我只是在
put
前面加了前缀,以获得更好的格式。例如,
将`ls public/assets`
$ heroku run 'ls .'
$ heroku run 'ls -al .' --app awesome-newsom-1234