Ruby on rails 无法使用Mongoid::GridFs put上载文件

Ruby on rails 无法使用Mongoid::GridFs put上载文件,ruby-on-rails,mongoid,gridfs,Ruby On Rails,Mongoid,Gridfs,我只是尝试使用mongoid-grid_fs gem将图像和文件上传到MongoDB 当前讨论的控制器代码如下所示: grid_fs = Mongoid::GridFs encFile = File.open(attFile) File.open(encFile, 'wb') do |f| f.write(encData) end grid_file = grid_fs.put(encFile.path) 我得到了这个错误: undefined method `destroy' for

我只是尝试使用mongoid-grid_fs gem将图像和文件上传到MongoDB

当前讨论的控制器代码如下所示:

grid_fs = Mongoid::GridFs
encFile = File.open(attFile)

File.open(encFile, 'wb') do |f|
  f.write(encData)
end

grid_file = grid_fs.put(encFile.path)
我得到了这个错误:

undefined method `destroy' for nil:NilClass
/GEMS/bundler/gems/mongoid-grid_fs-2f0e12e85a24/lib/mongoid/grid_fs.rb:150:in `put'
(eval):2:in `put'
/x/app/controllers/runtime/attachments_api_controller.rb:126:in `upload'
附件api控制器中的第126行为电网输出线

我不确定是什么问题。 我还声明
需要“mongoid/grid\u fs”

我已经对这个问题进行了绑定,我可以确认encFile.path是正确的,并且它包含有效的数据

编辑1:我尝试了不同的组合,试图将文件
grid\u fs.put(encFile)
-
grid\u fs.put(File.open(encFile.path))
-
grid\u fs.put(File.read(encFile.path))
但所有这些仍然返回相同的错误。

这不是正确的库用法。@D.SM我们是在谈论同一个库吗?它看起来正是你应该如何使用图书馆。你能详细阐述一下你的评论吗?你的例子使用了未定义的变量,使你很难理解你想要做什么,但是即使如此,也要考虑一个IO对象而不是一条路径。你也可以考虑直接使用驱动程序。你如何让它成为一个IO对象?我尝试将其作为File.open和File.read传递,但这两种方式都不起作用。