Help us understand the problem. What is going on with this article?

AWSで特定のページだけ「The page you were looking for doesn't exist...」の表示が出る

ページが存在しない?

AWSでやっとこさデプロイし、トップページを開くと

The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.

If you are the application owner check the logs for more information.

と、「ページが存在しませんよ。」というエラーが出てページが見られない問題に直面しました。

テーブル内の存在しないレコードを参照しようとしていた

原因はコントローラで

posts_controller.rb
def index
@fuga = Post.find(2)
end

と、postsテーブル内の(まだ存在しない)id 2のレコードを引っ張ってくるインスタンス変数を定義し、ビュー(トップページ)で

posts/index.html.haml
= image_tag (@fuga.image.url)

と記述していたからでした。

postsテーブルはユーザーによって投稿されたコンテンツを保存するためのテーブルであり、デプロイ完了時点でのpostsテーブル内のデータは当然空っぽです。その状態でid 2のレコードを引っ張ってこようとすると冒頭のエラーページが出てくるようです。(ローカルでは当該レコードは存在していて、ビューの表示は正常にできていたので盲点でした...)

@fugaを参照していないビューであれば普通に表示できたので、

会員登録ページからユーザーの新規登録

postsテーブルのid 2のレコードにデータが入るよう、投稿ページからコンテンツを2回投稿

で、ちゃんとトップページが表示されるようになりました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away