前提・実現したいこと
転職活動用ポートフォリオとしてダイエットアプリを開発中。
画像一覧ページに画像を表示させたい。
発生している問題・エラーメッセージ
Nil location provided. Can't build URI.
画像一覧ページでcurrent_userが投稿したpostの画像を表示しようとしたら、
このエラーが出た。
「画像がnil(ない)なので、画像のURLが作れないよ」と言ってる。
確かに指摘されたとおり、データベースには画像なしの投稿が複数保存されている。
どうやらこれが原因らしい。
該当のソースコード
posts_controller.rb
posts_controller.rb
def image
@posts = Post.where(user_id: current_user.id)
end
private
def post_params
params.require(:post).permit(:food, :calorie, :protein, :fat, :carbo, :text, :image, :weight).merge(user_id: current_user.id)
end
image.html.haml
image.html.haml
.content
.images
- @posts.each do |post|
= image_tag post.image.url, class: "my-images"
解決法
画像ありのpostだけ取得する。
posts_controller.rb
posts_controller.rb
def image
@posts = Post.where(user_id: current_user.id).where.not(image: nil)
end
これでimageカラムがnilのpostは取ってこないように指定したら解決した。