我有一个名为vehicles的类,它可以附加一个图像。如果vehicles.rb文件中没有上传其他图像,我已经创建了一个默认图像来显示。
我想在seed.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'
)
3条答案
按热度按时间holgip5t1#
您可以使用Ffaker gem轻松生成假数据,最后在创建车辆记录后,您可以从示例变量更新记录图像属性。
这将是
db/seed.rb
文件的代码:不要忘记将ffaker gem添加到您的
Gemfile
文件中。2j4z5cfb2#
正如上面的答案所指出的,它在边缘指南中,对于那些在正确获取路径方面遇到困难的人,这是
seeds.rb
文件中的一行将化身附加到第一个创建的用户的示例:toe950273#
这种方法对我在Rails 7:
数据库/种子.rb
1.然后在我看来:
应用程序/视图/帖子/显示.html.erb
所有这些都假定您安装了ActiveStorage:
在您的终端中:
然后在您的模型中:
型号/post.rb
在你的控制器中。添加图像到允许的参数: