2010-12-03 9 views
2

私はherokuでアプリケーションを実行しています。正常に機能しているように見え、データベースにアクセスできます。さて、私は 'heroku rake db:seed'を実行しようとしています...実行され、コード内のこの点に到達します。Herokuでファイルが表示されない - Herokuブラウズのコンテンツ

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」を受信composers.txtをロードしようとすると、私は理由として信じられないほど無知です。このコードはローカルコピーで正常に動作し、問題なく実行されます - composers.txtファイルが実際に自分のマシン上のそのディレクトリ内にあることを確認し、herokuへのgit pushに含まれていることを確認しました。

wが間違っていると思います。私のIO構文ですか?私のherokuアプリのファイル構造を閲覧する方法があるので、ファイルが実際にそこにあることを確認できますか?助言があれば大変感謝します:)

答えて

7

heroku consoleはあなたの友人です。

[email protected]:~/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のスラグでつつくと何が起こっているか見ることができません。ちなみに、私はおそらく代わりに、あなたが持っているもので、あなたの設定ファイルを取得するために、次を使用していないと思います:

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

karmajunkie:ありがとうございましたあなたの応答:)これは確かに生産的な方向の一歩だと思われる。今のところ、私は誰かが "ls"のようにかなり驚くべきことをするようになっているように見えますが。ディレクトリリストを返しません! –

+0

必ず引用符ではなく、バッククエストを使用してください。 – karmajunkie

+0

Ah si。あなたは最高の男です。 –

7

Herokuのコンソールがもはやサポートされ、代わりに1が「Herokuのコマンドを実行する」を使用しなければならない、すなわち

$ heroku run 'ls .' 

ここでは、herokuコンソールで使用されているバッククエストではなく、単一引用符(二重引用符)です。 backticksが使用されている場合(heroku run ls)、lsコマンドは最初にローカルで実行され、次にherokuに実行されるherokuにファイル名のリストを送ります。

heroku appこうした生産やステージングなど、あなたのプロジェクトで、あなたは(あなたの.git/configファイルにアプリ名を検索、または「Herokuのアプリケーションを」実行)対象とするアプリを指定する必要があります。

$ heroku run 'ls -al .' --app awesome-newsom-1234 
関連する問題