質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

890閲覧

Rails 本番環境発生するWe're sorry, but something went wrong. If you are the application owner check the logs

tmtm_201

総合スコア6

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/03/15 15:16

編集2020/03/15 16:28

発生している問題・エラーメッセージ

railsでのアプリ作成中にherokuへデプロイして本番環境で動作確認をしているとpostテーブルが使用されているページ(posts/index.erb もしくは posts/new.erb)で
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
と表示されました。
トップページや他のページ、テーブルが使用されているページは問題なく動作します。
開発環境では全ページ問題なく動作します。
以下のエラー文より、postテーブルに原因があると考えましたが、それ以上のことが全くわかりません。
記述自体にsqlite3では動作してpgでは動作しない原因があるのでしょうか。

該当のソースコード

schema.rb

1schema.rb 2create_table "posts", force: :cascade do |t| 3 t.string "name" 4 t.string "local" 5 t.string "genre" 6 t.text "content" 7 t.boolean "state" 8 t.integer "user_id" 9 t.datetime "created_at", null: false 10 t.datetime "updated_at", null: false 11 t.index ["user_id"], name: "index_posts_on_user_id" 12 end

heroku

1heroku logs 2F, [2020-03-15T14:52:44.947501 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 32020-03-15T14:52:44.947604+00:00 app[web.1]: F, [2020-03-15T14:52:44.947557 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "posts" does not exist 42020-03-15T14:52:44.947604+00:00 app[web.1]: LINE 1: SELECT "posts".* FROM "posts" 52020-03-15T14:52:44.947605+00:00 app[web.1]: ^ 62020-03-15T14:52:44.947605+00:00 app[web.1]: : SELECT "posts".* FROM "posts"): 72020-03-15T14:52:44.947749+00:00 app[web.1]: F, [2020-03-15T14:52:44.947694 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 15: </thead> 82020-03-15T14:52:44.947749+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 16: 92020-03-15T14:52:44.947751+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 17: <tbody> 102020-03-15T14:52:44.947752+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 18: <% @posts.each do |post| %> 112020-03-15T14:52:44.947752+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 19: <tr> 122020-03-15T14:52:44.947753+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 20: <td><%= post.name %></td> 132020-03-15T14:52:44.947753+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 21: <td><%= post.local %></td> 142020-03-15T14:52:44.947796+00:00 app[web.1]: F, [2020-03-15T14:52:44.947748 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 152020-03-15T14:52:44.947837+00:00 app[web.1]: F, [2020-03-15T14:52:44.947796 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] app/views/posts/index.html.erb:18:in `_app_views_posts_index_html_erb___377652420986337890_47078764072600'

app/views/posts/index.html

1app/views/posts/index.html 2<% @posts.each do |post| %> 3 <tr> 4 <td><%= post.name %></td> 5 <td><%= post.local %></td> 6 <td><%= post.genre %></td> 7 <td><%= post.content %></td> 8 <td><%= post.state %></td> 9 <td><%= link_to 'Show', "/posts/#{post.id}/responses/index" %></td> 10 <td><%= link_to 'Edit', edit_post_path(post) %></td> 11 <td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td> 12 </tr> 13 <% end %>

試したこと

posts/index.erbよりDBを使用する部分を除くと動作することを確認
postの従属関係を除くも動作せず。
heroku run rails db:migrate、drop,createなども一通り試しました。
production.logを見るもエラーは見られず。

追記、気になった点

db/migrate内のpostテーブルのmigrationファイルが無くなっている。

heroku run rails db:migrate:status Status Migration ID Migration Name -------------------------------------------------- D, [2020-03-15T15:26:38.228536 #4] DEBUG -- : (2.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC up 20200312051405 Devise create users

rails db:dropを開発環境でしてみた結果postテーブルが消えたため、マイグレーションファイルが何かのタイミングで消えてしまったのが原因だったと思われる。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

migrationファイルがなかったせいでした。
開発環境でrails db:dropをしたところpostテーブルが消えたため発覚しました。
作成し直したところ問題なく動作しました。

投稿2020/03/15 16:42

tmtm_201

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問