Ruby on Rails .カラム名 でデータが取得できない
解決したいこと
Ruby on RailsでTwitterのようなウェブアプリを作っています。
データベースからデータを取得しようとして、エラーが発生しました。
解決方法を教えてください;;
発生している問題・エラー
Postというモデルを作りました。
posts_controller.rb の中身は以下の通りです。
class PostsController < ApplicationController
def index
@posts = Post.all
end
def show
@post = Post.find_by(id:params[:id])
end
end
sho.html.erb というビューを作成しました。内容は以下の通りです。
<div class="main posts-show">
<div class="container">
<div class="posts-show-item">
<p>
<%= @post.content %>
</p>
<div class="post-time">
<%= @post.created_at %>
</div>
</div>
</div>
</div>
ここで、NoMethodError が発生しました。
*データベースにはPostデータをいくつか入れています。
エラー文は以下の通りです。
Showing /home/ec2-user/environment/tweet_app/app/views/posts/show.html.erb where line #5 raised:
undefined method `content' for nil:NilClass
'.freeze;@output_buffer.append=( @post.content);@output_buffer.safe_append='
自分で試したこと
posts_controller.rb の中身の、@postの定義をfindに変えてみましたが、それでもエラーが発生しました;;
→ その際は、「ActiveRecord::RecordNotFound in PostsController#show Couldn't find Post with 'id'={:id=>"1"}」というエラーになりました。
ruby 3.1.2p20
Rails 7.0.5
を使用しています。
他に必要な情報があれば、おっしゃってくださいorz
どうかよろしくお願いいたします;;
補足
routes.rbの中身は以下の通りです。
Rails.application.routes.draw do
get 'posts/index'
get '/' => 'home#top'
get "about" => "home#about"
get "posts/:id" => "posts#show"
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
# Defines the root path route ("/")
# root "articles#index"
end