[RUBY] Aucun emplacement fourni. Impossible de créer l'URI. Résolution

Prémisse / Ce que vous voulez réaliser

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.

Problèmes / messages d'erreur qui se produisent

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.

スクリーンショット 2020-08-23 午前0.02.27.png Comme il a été souligné, la base de données contient plusieurs articles sans images.

Apparemment, c'est la cause.

Code source correspondant

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"

Ce que j'ai essayé (résolu par ça)

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é.

Page de liste d'images terminée

スクリーンショット 2020-08-23 午前0.09.37.png

Article de référence: Specify NOT NULL in [Rails] Where clause

Recommended Posts

Aucun emplacement fourni. Impossible de créer l'URI. Résolution
Que faire lorsque "Aucun emplacement fourni. Impossible de créer l'URI." Apparaît sur CarrierWave