Импортируйте изображение с помощью Rails Admin Import в Active Storage по URL-адресу, указанному в CSV - PullRequest
0 голосов
/ 07 мая 2020

Rails 6.0.1 - Ruby 2.6.3 - Активное хранилище с rails_admin + rails_admin_import

В моем приложении я использую Rails Admin и Rails Admin Import , чтобы позволить администраторам загружать CSV-файл с данными в мою модель.

В этой модели у меня есть установка прикрепления обложки для активного хранилища.

class Post < ApplicationRecord
has_one_attached :coverphoto
end


----------

Мне удается загружать изображения в каждую запись вручную через Rails Admin, но когда я пытаюсь загрузить CSV-файл со столбцом с обложкой, возникает следующая ошибка:

Error during import: ActiveSupport::MessageVerifier::InvalidSignature (/Users/../.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/message_verifier.rb:176:in `verify')

Все остальные поля, в которых есть соответствующий атрибут в моей модели я могу загрузить, если удалю столбец coverphoto, но я не могу понять, как загрузить изображение.


Документация для Rails Admin Import включает это для CarrierWave, но я могу Не понимаю, как мне изменить его, чтобы он работал с Активными загрузками хранилища .

#Import an image into Carrierwave via a URL provided in the CSV.
def before_import_save(record)
  self.remote_image_url = record[:image] if record[:image].present?  
end

Любая помощь будет очень признательна!

1 Ответ

0 голосов
/ 11 мая 2020

Попробуйте на своей консоли rails присвоить URL-адрес этому полю

post = Post.last
post.coverphoto = 'https://dummyimage.com/600x400/000/fff'
post.save

Вероятно, произойдет сбой с той же ошибкой. Но если вы сделаете это сначала

post = Post.last
post.coverphoto = URI.parse('https://dummyimage.com/600x400/000/fff')
post.save

Это должно сработать.

То же самое проделайте и с методом before_import_saved.

...