名称错误:未初始化的常量MIME

3
这段Rubypress代码的意思是:
:type => MIME::Types.type_for(FILENAME).first.to_s,

出现以下错误信息:

NameError: uninitialized constant MIME

整个区块是:
FILENAME='myFile.png'
wp.uploadFile(:data => {
    :name => FILENAME,
    :type => MIME::Types.type_for(FILENAME).first.to_s,
    :bits => XMLRPC::Base64.new(IO.read(FILENAME))
    })

有什么建议是问题的原因吗?
3个回答

6
在文件顶部添加 require 'mime/types'

1
截至2020年,这会出现“LoadError:无法加载此类文件 - mime / types”的错误。 - Jack Kinsella
1
请确保您的 Gem 依赖中已添加了 mime-types - Nathan
1
我没有为它添加gem,只是使用了Rails并期望有内置功能。如果这是必要的步骤,也许你应该在你的答案中添加那个gem依赖项。 (我在下面添加了一个不需要额外gems的答案) - Jack Kinsella
1
我不知道那是否是必要的步骤。我的回答已经过时了五年。很高兴你找到了适合自己的解决方案。 - Nathan

1
extension =  File.extname(file).split(".")[1]
Mime::Type.lookup_by_extension(extension)

0

来晚了一点。

最近升级 Ruby 后,我发现无法初始化 MIME::TYPES。更现代的解决方案是使用 marcel,它已经作为最新版 Rails 的依赖包含在内。

Marcel::MimeType.for(file)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接