文件没有出现在Heroku中 - 浏览Heroku内容

时间:2010-12-03 16:08:15

标签: 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 = 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应用程序的文件结构,以便我可以验证文件确实存在?如果您有任何建议,我们将不胜感激:)

2 个答案:

答案 0 :(得分:7)

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")

答案 1 :(得分:7)

不再支持heroku控制台,而是必须使用“heroku run COMMAND”,即

$ heroku run 'ls .'

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

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

$ heroku run 'ls -al .' --app awesome-newsom-1234