Ruby on Rails + Carrierwave: почему image_tag на моей странице показа возвращает ошибку? - PullRequest
1 голос
/ 03 мая 2019

Я использую рельсы & carrierwave . Эта ошибка появляется при попытке показать файл изображения, загруженный пользователем:

"Не удается преобразовать изображение в URL: неопределенный метод` to_model 'для # Ты имел ввиду? to_xml "

Ошибка специально связана с этой строкой кода:

<%= image_tag @review.photo %>

Я не уверен, почему это не работает, потому что файл добавляется в базу данных правильно. Я вижу это в моей папке Public> Uploads.

Вот что у меня есть ...

Моя модель:

mount_uploader :photo, PhotoUploader

Моя форма:

<%= simple_form_for @review do |f| %>
 <%= f.input :title, placeholder: "Review title" %>
 # other fields
 <%= f.input :photo %>
 <%= f.button :submit, class: "submit-button", value: "Save Review" %>
<% end %>

Моя страница показа:

<%= image_tag @review.photo %>

Мой контроллер:

def form_params
    params.require(:review).permit(:title, ..others.. , :photo)
end

Класс PhotoUploader по умолчанию:

class PhotoUploader < CarrierWave::Uploader::Base

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

end

Любая помощь очень ценится. : -)

My error message

1 Ответ

0 голосов
/ 03 мая 2019

Пример в документации: https://github.com/carrierwaveuploader/carrierwave показывает, что вы бы вызвали image_tag таким образом:

<%= image_tag(@user.avatar_url) if @user.avatar? %>

Предполагая, что вы не настроили путь, в противном случае вы сможете это сделать.:

<%= image_tag @review.photo_url, alt: 'Your photo description' %>

(Обязательно используйте тег alt в целях доступности)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...