【问题标题】:Import an image with Rails Admin Import to Active Storage from a URL provided in the CSV使用 Rails Admin Import 将图像从 CSV 中提供的 URL 导入到 Active Storage
【发布时间】:2020-08-22 10:36:47
【问题描述】:

Rails 6.0.1 - Ruby 2.6.3 - 使用 rails_admin + rails_admin_import 的活动存储

在我的应用程序中,我使用 Rails AdminRails 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')

如果我删除封面照片列,我可以上传我的模型中具有相应属性的所有其他字段,但我不知道如何上传图片。


Rails Admin Import 的文档包括 CarrierWave 的此文档,但我不知道应该如何修改它以使其与 Active Storage Uploads 一起使用。

#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

任何帮助将不胜感激!

【问题讨论】:

  • 您正在混合 Rails Admin 和 Active Admin 来解决您的问题,您介意澄清一下您使用的是哪个 gem 吗?
  • 很抱歉。我正在使用 Rails 管理员。现在更新了问题。 gem 'rails_admin', git: 'github.com/sferik/rails_admin.git' gem "rails_admin_import", "~> 2.2"

标签: ruby-on-rails ruby csv import rails-admin


【解决方案1】:

尝试在您的 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 方法上做同样的事情。

【讨论】:

    猜你喜欢
    • 2020-09-03
    • 2018-12-08
    • 2018-01-29
    • 2018-11-16
    • 1970-01-01
    • 2023-03-12
    • 2020-03-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多