###前提・実現したいこと
rails4 ローカル環境
deviseを使用してログイン機能を実装しました。
そこで、トップページとなるtop/inedex.html.erb
で<% if user_signed_in? %>
を使い、
ログインしてない場合はログイン用のページ
ログインしている場合は自分のトップページ
となるようにしました。
気に入った記事をお気に入りできるようにしていて、お気に入りした記事を自分のトップページに表示できるようにしたいです。
###発生している問題・エラーメッセージ
現在は該当のソースコードに記載したように記述しているのですが、ログイン時は正常に表示されているのですが、ログアウトした際に以下のエラーになってしまいます。
NoMethodError at / undefined method `favorites' for nil:NilClass
###該当のソースコード
top_controller.rb
class TopController < ApplicationController def index @my_favorites = current_user.favorites end end
views/top/index.html.erb
<% if user_signed_in? %> 省略 <h4>お気に入り記事</h4> <% @my_favorites.each do |favorite| %> <p> <%= link_to thre_path(favorite.thre) do %> <%= favorite.thre.title %> <% end %> </p> <% end %> <% else %> 省略 <%= link_to 'ログイン', new_user_session_path %> <%= link_to 'サインアップ', new_user_registration_path %> <% end %>
どのように修正すればか良いかアドバイス頂けると嬉しいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/01 04:08