前提・実現したいこと
Railsでレシピサイトを製作中です。お気に入り機能をfavorites中間テーブルにより実装しました。
各ユーザーのページから、各ユーザーがお気に入りをしたレシピの一覧へと遷移する際に以下のエラーメッセージが出ます。
発生している問題・エラーメッセージ
NoMethodError in Users#favorites Showing /home/ubuntu/environment/cook/app/views/recipes/_recipes.html.erb where line #7 raised: undefined method `title' for #<Favorite:0x00007fa9bc2fdb78>
該当のソースコード
↓エラーの出ているパーシャルのファイルです。
Ruby
1<% if recipes.any? %> 2 <ul class="list-unstyled"> 3 <% recipes.each do |recipe| %> 4 <li class="media"> 5 <div class="media-body"> 6 <div> 7 <%= link_to recipe.title,recipe_path(recipe.id) %> 8 </div> 9 </div> 10 </li> 11 <% end %> 12 </ul> 13 <%= paginate recipes %> 14<% end %>
↓userのモデルです。
Ruby
1 has_many :favorites,dependent: :destroy 2 has_many :fav_recipes, through: :favorites,source: :recipe,dependent: :destroy
↓userのコントローラです。
Ruby
1class UsersController < ApplicationController 2 3 def favorites 4 @user = User.find(params[:id]) 5 @fav_recipes = @user.favorites.order('created_at DESC').page(params[:page]) 6 end
↓users/show(ユーザー詳細)のビューです。ここでお気に入りレシピへのリンクを押すとエラーになります。
Ruby
1<%=link_to "#{@user.name}",user_path(@user) %>さん 2<%= render 'relationships/follow_button', user: @user %> 3 4 5<li class="nav-item"><a href="<%= user_path(@user) %>" class="nav-link <%= 'active' if current_page?(user_path(@user)) %>">投稿したレシピ一覧 <span class="badge badge-secondary"></span></a></li> 6<li class="nav-item"><a href="<%= followings_user_path(@user) %>" class="nav-link <%= 'active' if current_page?(followings_user_path(@user)) %>">フォロー <span class="badge badge-secondary"></span></a></li> 7<li class="nav-item"><a href="<%= followers_user_path(@user) %>" class="nav-link <%= 'active' if current_page?(followers_user_path(@user)) %>">フォロワー <span class="badge badge-secondary"></span></a></li> 8<li class="nav-item"><a href="<%= favorites_user_path(@user) %>" class="nav-link <%= 'active' if current_page?(favorites_user_path(@user)) %>">お気に入りレシピ <span class="badge badge-secondary"></span></a></li> 9投稿したレシピ一覧 10<%=render "recipes/recipes", recipes: @recipes %>
↓users/favoritesのビューです。開けないページで、ここのパーシャルファイルの呼び出しでエラーが起きています。
Ruby
1 <%=link_to "#{@user.name}",user_path(@user) %>さん 2 <%= render 'relationships/follow_button', user: @user %> 3 4 5 <li class="nav-item"><a href="<%= user_path(@user) %>" class="nav-link <%= 'active' if current_page?(user_path(@user)) %>">投稿したレシピ一覧 <span class="badge badge-secondary"><%= @count_microposts %></span></a></li> 6 <li class="nav-item"><a href="<%= followings_user_path(@user) %>" class="nav-link <%= 'active' if current_page?(followings_user_path(@user)) %>">フォロー<span class="badge badge-secondary"><%= @count_followings %></span></a></li> 7 <li class="nav-item"><a href="<%= followers_user_path(@user) %>" class="nav-link <%= 'active' if current_page?(followers_user_path(@user)) %>">フォロワー <span class="badge badge-secondary"><%= @count_followers %></span></a></li> 8 <li class="nav-item"><a href="<%= favorites_user_path(@user) %>" class="nav-link <%= 'active' if current_page?(favorites_user_path(@user)) %>">お気に入りレシピ <span class="badge badge-secondary"><%= @count_favorites %></span></a></li> 9 お気に入りにしたレシピ 10 <%=render "recipes/recipes", recipes: @fav_recipes %>
試したこと
fav_recipesなどに誤字などを確認しましたが、該当部分にはおそらくないようです。nil Classではないようですが、そこからどう紐解けばいいか困っています。よろしくおねがい致します。
補足情報(FW/ツールのバージョンなど)
初めての質問なので、不備等あったら申し訳ございません。ご教示いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー