我有附件
class User < ApplicationRecord
has_one_attached :avatar
[当我创建用户并执行种子操作时
user = User.create({"name":"pedro})
file = open("#{Rails.root}/app/assets/img/user.png")
user.avatar.attach(io: file, filename: "user.png")
the avatar gets attached
但是,当我尝试在控制器上复制/更新它时:
user = User.find(params["id"])
user.avatar.purge
file = open("#{Rails.root}/app/assets/img/user.png")
user.avatar.attach(io: file, filename: "user.png")
它以某种方式被绑定(如果我执行了user.avatar.attached?在附加后返回false和true之前),但是该blob无法持久保存/保存到存储中。它只以某种方式仅与新创建的对象一起存在。
我曾尝试寻找类似问题的问题,但没有成功。
我看不到任何地方将其保存到数据库中
user.save
此外,添加内容类型也是一种很好的做法
user.avatar.attach(io:文件,文件名:“ user.png”,content_type:'image / png')