undefined method `image_name' for nil:NilClass
下記のフォロー機能を実装中に上記のエラーが表示されました。
def follows @user = User.find_by(id: params[:id]) @follows = Follow.where(user_id: @user.id) end
<ul> <% @follows.each do |follow| %> <% user = User.find_by(id: follow.follow_user_id) %> <li> <%= link_to image_tag("/user_image/#{user.image_name}","/users/#{user.id}") %> <%= link_to(user.name,"/users/#{user.id}") %> </li> <% end %> </ul>
■エラー後に試したこと
#ユーザーがフォローしているユーザーのIDを取得 <%= follow.follow_user_id %> => 7 14 24 26 56
#コンソールでIDのデータが存在するかをひとつずつ検索 #ユーザーIDの存在しないデータが数件みつかる rails console user = User.find_by(id:14) => nil
エラー原因はフォロー済みのユーザーが存在しない(退会している)からということでしょうか・・・?
またこのような場合、存在するデータだけ抜粋して表示するという方法はあるでしょうか?
存在確認用のメソッド exists?を使えばいけるかなと試行錯誤したのですがうまくいかず。
解決方法がお分かりになる方いましたら、ご助言いただけると幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/27 14:05
2018/05/28 05:18