gpt4 book ai didi

ruby - 使用事件存储在 rails 中附加 seed.rb 文件中的图像

转载 作者:数据小太阳 更新时间:2023-10-29 08:56:41 24 4
gpt4 key购买 nike

我有一个名为 vehicles 的类,它可以附加图像。如果 vehicles.rb 文件中没有上传其他图像,我会显示默认图像。

我想在 seed.rb 文件中包含图像,这样我就不必手动上传所有图像。这可能吗?

非常感谢您的帮助。

这是我的 vehicle.rb:

class Vehicle < ApplicationRecord
belongs_to :make
belongs_to :model
accepts_nested_attributes_for :make
accepts_nested_attributes_for :model
has_one_attached :image

after_commit :add_default_image, on: %i[create update]

def add_default_image
unless image.attached?
image.attach(
io: File.open(Rails.root.join('app', 'assets', 'images', 'no_image_available.jpg')),
filename: 'no_image_available.jpg', content_type: 'image/jpg'
)
end
end
end

这是我在种子文件中创建记录的方式,但我也想包含图像:

v = Vehicle.create(
vin: '1QJGY54INDG38946',
color: 'grey',
make_id: m.id,
model_id: mo.id,
wholesale_price: '40,000'
)

最佳答案

您可以使用 Ffaker gem 可以轻松生成假数据,最后在创建车辆记录后,您可以从实例变量更新记录图像属性。检查Attaching File/IO Objects

这将是 db/seed.rb 文件的代码:

if Vehicle.count.zero?
10.times do
v = Vehicle.create(
vin: FFaker::Code.ean,
color: FFaker::Color.name,
maker_id: m.id,
model_id: m.id,
wholesale_price: '40,000'
)
v.image.attach(
io: File.open(File.join(Rails.root,'app/assets/images/photo.jpg')),
filename: 'photo.jpg'
)
end
end

不要忘记将 ffaker gem 添加到您的 Gemfile 文件中。

关于ruby - 使用事件存储在 rails 中附加 seed.rb 文件中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53381906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com