尝试在 Heroku 上的生产环境中运行时出现“NoMethodError(未定义方法‘扩展’...”

发布于 2024-11-16 16:54:31 字数 473 浏览 2 评论 0原文

您好,我的应用程序在使用 :file 时在本地运行良好,但是一旦我将其推送到 heroku 并使用 S3,我在尝试上传时会收到此错误。它看起来是 def filename 方法的一个问题。

Heroku 日志显示:

 NoMethodError (undefined method `extension' for #<CarrierWave::Storage::S3::File:0x00000006316a90>):
 app/uploaders/image_uploader.rb:53:in `filename'

这就是我在上传器中定义文件名的方式:

  def filename
       "image.#{model.image.file.extension}" if original_filename
     end

我该如何解决这个问题?谢谢!

HI my app works fine locally when using :file but once i'ts pushed up to heroku and using S3 I get this error when trying to upload. It looks to be a porblem with the def filename method.

The heroku logs show:

 NoMethodError (undefined method `extension' for #<CarrierWave::Storage::S3::File:0x00000006316a90>):
 app/uploaders/image_uploader.rb:53:in `filename'

This is how I have filename defined in my uploader:

  def filename
       "image.#{model.image.file.extension}" if original_filename
     end

How can i fix this? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栀梦 2024-11-23 16:54:31

试试这个:

def filename
  "image.#{File.extname(original_filename).downcase}" if original_filename
end

Try this:

def filename
  "image.#{File.extname(original_filename).downcase}" if original_filename
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文