前提・実現したいこと
Ruby on Railsで簡単な投稿サイトを作っています。
ユーザー詳細ページに遷移した際、そのユーザーが投稿した内容の一覧が表示されるように実装していたところ、エラーが出てしまいました。
エラーメッセージ
Error
1ActionView::MissingTemplate in Users#show 2Showing /Users/mayu/projects/protospace-30336/app/views/users/show.html.erb where line #31 raised: 3 4Missing partial users/_prototype, application/_prototype with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in: 5 * "/Users/mayu/projects/protospace-30336/app/views" 6 7 8### 該当のソースコード 9Extracted source (around line #31): 10 11 </h2> 12 <div class="user__card"> 13#31=> <%= render partial: 'prototype', collection: @prototypes, locals: {prototype: @prototype}%> 14 </div> 15 </div> 16 </div> 17
●routes.rb
Rails.application.routes.draw do devise_for :users root to: "prototypes#index" resources :prototypes, only: [:new, :create, :show, :edit, :update, :destroy] do resources :comments, only: :create end resources :users, only: :show end
●users_controller.rb
class UsersController < ApplicationController def show @user = User.find(params[:id]) @prototypes = @user.prototypes end end
●show.html.erb
<div class="main"> <div class="inner"> <div class="user__wrapper"> <h2 class="page-heading"> <%= "#{@user.name}さんの情報"%> </h2> <table class="table"> <tbody> <tr> <th class="table__col1">名前</th> <td class="table__col2"><%= @user.name %></td> </tr> <tr> <th class="table__col1">プロフィール</th> <td class="table__col2"><%= @user.profile %></td> </tr> <tr> <th class="table__col1">所属</th> <td class="table__col2"><%= @user.occupation %></td> </tr> <tr> <th class="table__col1">役職</th> <td class="table__col2"><%= @user.position %></td> </tr> </tbody> </table> <h2 class="page-heading"> <%= "#{@user.name}さんのプロトタイプ"%> </h2> <div class="user__card"> <%= render partial: 'prototype', collection: @prototypes %> </div> </div> </div> </div>
●_prototype.html.erb
<div class="card"> <%= link_to image_tag(prototype.image, class: :card__img ), prototype_path(prototype.id) %> <div class="card__body"> <%= link_to prototype.title, prototype_path(prototype.id), method: :get, class: :card__title %> <p class="card__summary"> <%= prototype.catch_copy %> </p> <%= link_to prototype.user.name, user_path(prototype.user_id), class: :card__user %> </div> </div>
補足情報
show.html.erbのrenderメソッドにて、_prototype.html.erbのテンプレートファイルがうまく呼び出せていないのが原因だと思うのですが、変数の定義などを見てもどこが問題なのか分からず困っています…。
どなたかご回答いただけると、助かります。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。