2016-10-13 14 views
-1

Ruby on Railsを学ぶだけです。私は2つのデータベーステーブルを作成しました:トレーナーとtokimons。ローカルホスト(データベースを含む)ですべてうまく動作しますが、英雄は何かが間違っていました。ここRuby on railsアプリケーションは、ローカルホストで動作しますが、英雄ではありません。

ログある:

2016-10-13T21:51:16.840425+00:00 heroku[router]: at=info method=GET path="/" host=a2-tokimon.herokuapp.com request_id=2f86b075-8d64-4616-984a-304df86d9768 fwd="142.58.35.51" dyno=web.1 connect=2ms service=11ms status=500 bytes=1669 

2016-10-13T21:51:16.851541+00:00 app[web.1]: Started GET "/" for 142.58.35.51 at 2016-10-13 21:51:16 +0000 

2016-10-13T21:51:16.854395+00:00 app[web.1]: Processing by WelcomeController#index as HTML 

2016-10-13T21:51:16.858208+00:00 app[web.1]: Rendered welcome/index.erb within layouts/application (3.1ms) 

2016-10-13T21:51:16.858340+00:00 app[web.1]: Completed 500 Internal Server Error in 4ms (ActiveRecord: 2.3ms) 

2016-10-13T21:51:16.859867+00:00 app[web.1]: 

2016-10-13T21:51:16.859872+00:00 app[web.1]: ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "trainers" does not exist 

2016-10-13T21:51:16.859873+00:00 app[web.1]: LINE 1: SELECT "trainers".* FROM "trainers" 

2016-10-13T21:51:16.859874+00:00 app[web.1]:        ^

2016-10-13T21:51:16.859874+00:00 app[web.1]: : SELECT "trainers".* FROM "trainers"): 

2016-10-13T21:51:16.859875+00:00 app[web.1]:  51: 

2016-10-13T21:51:16.859876+00:00 app[web.1]:  52: 

2016-10-13T21:51:16.859877+00:00 app[web.1]:  53:   <tbody> 

2016-10-13T21:51:16.859877+00:00 app[web.1]:  54:    <% @trainer.each do |trainer| %> 

2016-10-13T21:51:16.859878+00:00 app[web.1]:  55:    <tr class="<%= cycle('oddline', 'evenline') %>"> 

2016-10-13T21:51:16.859879+00:00 app[web.1]:  56:     <td><%= trainer.pname %></td> 

2016-10-13T21:51:16.859880+00:00 app[web.1]:  57:     <td><%= trainer.level %></td> 

2016-10-13T21:51:16.859881+00:00 app[web.1]: app/views/welcome/index.erb:54:in `_app_views_welcome_index_erb__3990380873615253162_69847032979680' 

2016-10-13T21:51:16.859882+00:00 app[web.1]: 

2016-10-13T21:51:16.859882+00:00 app[web.1]: 

ここここwelcome_controller.rb

class WelcomeController < ApplicationController 

    # GET /welcome 
    def index 
    @trainer = Trainer.all 
    end 



end 
+1

あなたはテーブルを作るために英雄のためにデータベースをすくい取りましょう。もしあなたがheroku cliを走らせるなら、 'heroku run rake db:migrate' – teddybear

+1

こんにちは。基本的にデータベースにはトレーナーテーブルがないため、マイグレーション(またはスキーマ)をチェックインするのを忘れてしまったと思います。 –

+0

ありがとう。やってみます。ところで、私は使用しました:railsはscaffold Trainer pname:string ******を生成してテーブルを作成します。しかし、トレーナーを使うときは、トレーナーとトレーナーが私を混乱させます。私たちを手伝ってくれますか? –

答えて

0

の一部はラインtrainers_controller.rbの部分

class TrainersController < ApplicationController 
    before_action :set_trainer, only: [:show, :edit, :update, :destroy] 

    # GET /trainers 
    # GET /trainers.json 
    def index 
    @trainer = Trainer.all 
    end 

である。

2016-10-13T21:51:16.859872+00:00 app[web.1]: ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "trainers" does not existはあなたにポストグルの問題があるというヒントになるはずです。具体的には、テーブルは未定義です。

heroku-cliがインストールされていると仮定すると、コンソールにheroku run rake db:migrateを実行する必要があり、これはHerokuに必要な移行を実行します。

ここでHerokuの上で実行されているレール(4)アプリを取得する方法についてのドキュメントされています。ここ

https://devcenter.heroku.com/articles/getting-started-with-rails4

、具体的には、移行に関する一部です:

https://devcenter.heroku.com/articles/getting-started-with-rails4#migrate-your-database

HerokuのCLIのマニュアルとインストール手順:

https://devcenter.heroku.com/articles/heroku-command-line

0

PG::UndefinedTableおよびPG::UndefinedColumnエラーは、運用データベースに対して移行を実行していないために発生します。

展開するたびにheroku run rake:db:migrateを実行する必要があります。

関連する問題