首页 > 解决方案 > Rails 读取文件 Yomu gem - Psych::SyntaxError 异常 - 如何救援

问题描述

我有 Rails 应用程序,如果我上传它,它会给我来自 doc、docx 和 pdf 的页面数。

为了获取页数,我在 Document 模型中以下列方式使用 Yomu gem:

  def update_information
      doc = Yomu.new(self.doc.url)
      self.num_of_pages = doc.metadata['xmpTPg:NPages']
      self.file_updated_at = doc.metadata['modified'] || doc.metadata['Creation-Date'] || Time.now
      self.file_created_at =  doc.metadata['Creation-Date'] || Time.now
   end

我的一份文件抛出异常:

*** Psych::SyntaxError Exception: (<unknown>): mapping values are not allowed in this context at line 23 column 15

而且我无法弄清楚如何在不破坏体验的情况下拯救它或避免问题(它是一个网站)。

通过谷歌搜索,我尝试了这个:

begin
  doc = Yomu.new(self.doc.url)
  self.num_of_pages = doc.metadata['xmpTPg:NPages']
  self.file_updated_at = doc.metadata['modified'] || doc.metadata['Creation-Date'] || Time.now
  self.file_created_at =  doc.metadata['Creation-Date'] || Time.now
rescue Psych::SyntaxError, StandardError => e
  print e
end

但它没有用,它仍然抛出错误并破坏流程。

任何建议如何解决?

标签: ruby-on-railsyaml

解决方案


推荐阅读