在 Rails 5.2 中,使用 Carrierwave gem 当文件不再存在于磁盘上时,我如何使用默认的 gem?

In Rails 5.2, using Carrierwave gem how can I use the default gem when the file no longer exists on disk?

我在 Rails 5.2.2.1 上使用 Carrierwave gem。当数据库中不存在该记录的图像时,我将其设置为默认 url 图像。但是,如果我在数据库中有一个图像用于记录,但磁盘上不存在该文件,我怎么才能让它也显示出来呢?

目前,我收到以下错误:

ActionController::RoutingError (No route matches [GET] "/uploads/player/314c38a9-6567-4faa-bfda-9e7a75cbaed4.jpeg")

有没有办法挽救并显示我在上传程序文件中指定的默认 url?

如果你有默认图片,你可以像这样在你的模型中设置方法

def image
  File.file?(file.path) ? file.url : default_image_url #and you need to define this default url
end

或者您可以像@mroach 在您的路由中提到的那样处理图像上的 404