Nous développons une application diététique en tant que portefeuille d'activités de changement d'emploi. Je souhaite afficher une image sur la page de liste d'images.
Nil location provided. Can't build URI.
Lorsque j'essaye d'afficher l'image du message posté par current_user sur la page de liste d'images, J'ai eu cette erreur.
"L'image est nulle, donc je ne peux pas créer une URL pour l'image", dit-il.
Comme il a été souligné, la base de données contient plusieurs articles sans images.
Apparemment, c'est la cause.
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
ruby:image.html.haml
.content
.images
- @posts.each do |post|
= image_tag post.image.url, class: "my-images"
Obtenez uniquement des messages avec des images.
posts_controller.rb
posts_controller.rb
def image
@posts = Post.where(user_id: current_user.id).where.not(image: nil)
end
Cela a résolu le problème si je spécifiais que le message dont la colonne d'image était nulle ne devrait pas être récupéré.
Article de référence: Specify NOT NULL in [Rails] Where clause