我对roo gem有问题。当我使用Rails应用程序上传文件时,由于我不想保留文件,而是从文件中导入电子表格数据,因此它最终在文件系统上作为Tempfile出现。
https://github.com/roo-rb/roo/blob/3ed05e1caef0ce3c5db5c19f1fa14e6f74193079/lib/roo/base.rb#L374
以上行检查我的对象是否响应搜索。这会导致问题。
(byebug) filename_or_stream.class
Tempfile
(byebug) filename_or_stream.methods.include? :seek
true
您如何建议我应该解决这个问题?
https://github.com/bigos/roo/commit/55ec3325ec3131fa34c3e0f5e647160cb17ef114
并能够继续我的工作,但问题仍然存在:Tempfile如何获得seek方法?
寻找寻线导致此行
这对我来说毫无意义,我仍然不知道为什么Tempfile会响应以寻求文档中没有提及任何内容。
https://github.com/bigos/open_example/blob/master/spec/models/open_sheet_spec.rb
if file.is_a? Tempfile
@workbook = Roo::OpenOffice.new(file.path)
else
@workbook = Roo::OpenOffice.new(file)
end
但是为什么这只是roo gem中Opensheet部分的问题?我没有在其他电子表格中注意到该问题。