前提・実現したいこと
ポートフォリオページをrailsで作成しています。
詳細ページを作成中ですが、DBのカラム情報の表示ができません。
どうかご教授いただけますでしょうか
初心者ですがどうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
NoMethodError in Portfolio#show
Showing /home/ec2-user/environment/portfolio/app/views/portfolio/show.html.erb where line #6 raised:
undefined method `title' for nil:NilClass
ActionView::Template::Error (undefined method `title' for nil:NilClass): 3: 4: <div class="slick1"> 5: 6: <p><%= @works.title %></p> 7: <p><%= @works.detail %></p> 8: 9: <img style="background-image: url_for(works.images);"></img> app/views/portfolio/show.html.erb:6:in `_app_views_portfolio_show_html_erb__1563797991912808332_70127707796960'
該当のソースコード
routes.rb
Rails.application.routes.draw do root to: 'portfolio#index' resources :portfolio get 'portfolio' => 'portfolio#index' get 'portfolio/new' => 'portfolio#new' post 'portfolio' => 'portfolio#create' post 'works' => 'portfolio#create' get 'portfolio' => 'portfolio#show' end
portfolio.controller.rb
class PortfolioController < ApplicationController def index @works = Work.all end def new @works = Work.new end def create @works = Work.create(create_params) end private def create_params params.require(:work).permit(:title, :detail, :genre, images: []) end def show @works = Work.find(params[:id]) end def update end def edit end end
show.html.erb
<main class="contents"> <p class="midashi2">作品</p> <div class="slick1"> <p><%= @works.title %></p> <p><%= @works.detail %></p>
試したこと
@worksのインスタンス関数の設定で、モデルの指定をしており、データの保存の確認はできています。
補足情報(FW/ツールのバージョンなど)
基本的なことかもしれませんがどうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー