it-swarm.com.ru

Rails 5, «nil не является допустимым источником ресурсов»

Я только что обновился до Rails 5, и у меня возникла странная проблема при попытке показать изображение.

У меня есть точный код, который у меня был для Rails 4:

<%= image_tag article.image_url(:thumb) %>

Но после обновления я получаю:

nil is not a valid asset source

Перед обновлением до Rails 5, у меня не было подобных проблем.

В моей Article модели у меня есть:

mount_uploader :image, ImageUploader

Что здесь может быть виновато? Может ли это быть чем-то другим, а не проблемой обновления Rails?

15
Tasos Anesiadis

Проблема заключалась в том, что я пытался показать изображение, которое не существовало .

Добавление unless article.image.blank? решило это:

<%= image_tag article.image_url(:thumb) unless article.image.blank? %>

Правка: In Rails 4 , это бы просто ничего не отображало без ошибок, а в Rails 5 это вызывает ошибку. Так что это была проблема обновления.

Большое спасибо @BookOfGreg за указание на это.

19
Tasos Anesiadis

Я не знаю, это компактное решение или нет, но этот код будет работать.

активировать метод возврата в загрузчике.

  def default_url
    "/assets/fallback/" + [version_name, "default.png"].compact.join('_')
  end

Надеюсь, что это поможет вам.

Приветствия (у)

9
Simranjit Singh

Попробуйте с этим, вам нужно добавить если - условие в вашем коде. Вы должны добавить ниже код 

<% = image_tag article.image_url (: thumb), если только article.image.blank? %> 

0
Rahul2692

Надеюсь, этот фрагмент поможет будущим читателям.

<td><%= image_tag image.picture.url, size: "100x100" unless image.picture.url.blank? %></td>

без этого кода [разве что image.picture.url.blank?] при загрузке пустого изображения появляется «nil не является допустимым источником ресурсов».

0
toking