ruby-on-rails - 如何从 CSV 导入图像并使用 ActiveStorage 附加到模型?
问题描述
我正在尝试从 CSV 导入用户头像并使用 ActiveStorage 附加到用户。
我为此创建了一个 rake 任务,但它不起作用(并且不会引发任何错误)。在我的 CSV 中只有 2 个字段:电子邮件和头像(头像是文件的 url,位于另一台服务器上)。
这是任务:
require 'csv'
namespace :import do
desc "Import avatars to users from CSV"
task avatars: :environment do
filename = File.join Rails.root, "avatars.csv"
CSV.foreach(filename, headers: true, col_sep: ";", header_converters: :symbol) do |row|
User.find_by(email: row[:email]) do |u|
u.avatar.attach(URI.parse(row[:avatar]).open)
end
end
end
end
有什么建议吗?谢谢你的帮助。
解决方案
您是否尝试过捕获任何异常并在控制台中打印问题?
像这样的东西:
require 'csv'
namespace :import do
desc "Import avatars to users from CSV"
task avatars: :environment do
begin
filename = File.join Rails.root, "avatars.csv"
CSV.foreach(filename, headers: true, col_sep: ";", header_converters: :symbol) do |row|
User.find_by(email: row[:email]) do |u|
u.avatar.attach(URI.parse(row[:avatar]).open)
end
end
rescue StandardError => e
logger = Logger.new(STDOUT)
logger.error e.message
logger.error e.backtrace.join("\n")
end
end
end
另外,您确定您有使用该电子邮件的用户吗?
推荐阅读
- python - 我正在尝试在我的 Mac 书上安装 kivy。但我得到下面的错误
- python - 如何遍历嵌套在列表中的字典
- c++ - 带有 CPP 和 ASM 的 CMake 项目
- amazon-web-services - 记录 AWS API Gateway API
- powershell - 如何帮助 Powershell 找到远程服务器?
- php - WordPress 中的 AJAX 调用在 Windows 而非 Mac 上返回 400 错误
- javascript - Fetch 返回 404 未在 Web 组件中找到
- matlab - 如何在 Matlab 中使用 fminsearch 和 forloop?
- python - 从其他本地环境本地安装 conda 包
- python - 迭代 numpy 数组的特定部分并添加值