Файл не отображается в Heroku - Просмотр содержимого Heroku - PullRequest
2 голосов
/ 03 декабря 2010

Я запускаю приложение на 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.

Мне интересно, что-то не так? мой синтаксис ввода-вывода? Есть ли способ просмотреть структуру файла моего приложения heroku, чтобы я мог убедиться, что файл действительно там? Если у вас есть какие-либо советы, это будет высоко ценится:)

Ответы [ 2 ]

7 голосов
/ 16 апреля 2014

консоль heroku больше не поддерживается, вместо этого нужно использовать «heroku run COMMAND», т.е.

$ heroku run 'ls .'

Обратите внимание, что здесь это одинарные (или двойные) кавычки, а НЕ backtics, используемые в консоли heroku. Если используются обратные метки (heroku run ls), то команда ls сначала запускается локально, а затем передает список имен файлов heroku, запускаемых как КОМАНДА, которую нужно запустить ...

Если в вашем проекте более одного приложения heroku, например, производства и постановки, вам может потребоваться указать целевое приложение (найдите имя приложения в файле .git / config или запустите «приложения heroku») :

$ heroku run 'ls -al .' --app awesome-newsom-1234
7 голосов
/ 03 декабря 2010

консоль герока - твой друг.

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"

это не круто с точки зрения форматирования, но вы можете, по крайней мере, поковыряться в слизняках герои и посмотреть, что происходит. Между прочим, я бы, вероятно, использовал следующее для доступа к вашему файлу конфигурации вместо того, что вы получили:

Rails.root.join("app", "data", "composers.txt")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...