Аргумент Ошибка Nil местоположение указано.Невозможно построить URI для тега image с использованием несущей волны Ruby on Rails - PullRequest
0 голосов
/ 28 ноября 2018

Я получаю ошибку аргумента для местоположения Nil, предоставленного при использовании image_tag.Как сделать опцию image_tag необязательной, если она отображается только при наличии соответствующего изображения?Это с Ruby on Rails 5.

Это мой текущий просмотр страницы шоу:

<p id="notice"><%= notice %></p>

<%= image_tag @restaurant.image_url %>

<p>
  <strong>Name:</strong>
  <%= @restaurant.name %>
</p>

<p>
  <strong>Address:</strong>
  <%= @restaurant.address %>
</p>

<p>
  <strong>Phone:</strong>
  <%= @restaurant.phone %>
</p>

<p>
  <strong>Website:</strong>
  <%= @restaurant.website %>
</p>

<%= link_to 'Edit', edit_restaurant_path(@restaurant), class: 'btn btn-link' %> |
<%= link_to 'Back', restaurants_path, class: 'btn btn-link' %>

Ответы [ 2 ]

0 голосов
/ 09 августа 2019

используйте условие if, если изображение будет отображаться, если его нет, ошибки нет

   <% if @restaurant.image_url? %>
     <%= image_tag @restaurant.image_url %>
   <% end %>
0 голосов
/ 28 ноября 2018

У вас есть два варианта.

1) Отображать тег изображения, только если есть изображение, которое нужно показать:

 <% if @restaurant.image_url %>
    <%= image_tag @restaurant.image_url %>
 <% end %>

2) Укажите значение по умолчанию для поля image_url:

 <%= image_tag @restaurant.image_url || default_image %>

Лучше сделать это в модели / презентере:

class Image < ApplicationModel

  def image_url
    super || default_image
  end
end

Или с атрибутом API :

class Image < ApplicationModel
  attribute :image_url, default: default_image
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...