【问题标题】:Rails 4 with prawn: can't write unknown attribute `info`Rails 4 with prawn:无法写入未知属性`info`
【发布时间】:2016-01-07 17:43:19
【问题描述】:

我也有同样的问题:can't write unknown attribute `info' PrawnPDF

但是,这个问题没有答案,只是他重新安装了大虾。 我做了一个 gem uninstall prawn,然后一个 bundle install 重新安装 gem,但我仍然得到错误。

唯一改变的是,在运行 rails s 时,现在我收到以下警告:

C:/Ruby21/lib/ruby/gems/2.1.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:已初始化常量 Mime:PDF C:/Ruby21/lib/ruby/gems/2.1.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:之前的PDF定义在这里

会不会是我卸载重装不正确?

谢谢

【问题讨论】:

  • “无法写入未知属性`info'消息”是否有文件和linenr?该文件的外观如何?创建最小 PDF 时是否也会出现该错误?
  • 您能否在某个地方提供一个演示项目,其中包含您收到错误消息的基本实现?

标签: ruby-on-rails prawn


【解决方案1】:

mimetype 的错误是因为你可能有

Mime::Type.register "application/pdf", :pdf

在您已注册的config/initializers/mime_types.rb 中。请删除该行

【讨论】:

    【解决方案2】:

    我遇到了这个错误,我尝试了 Manuel 和 Aulait 的修复,但都没有为我工作。在我恢复到以前的一些更改后,我注意到 super 需要括号,无论您是否传递任何内容。

    def initialize(x, view)
      super()
      @x = x
    end
    

    这就是我最终需要做的所有事情来解决问题!祝你好运:)

    【讨论】:

      【解决方案3】:

      我不知道为什么,但是当我的 InvoicePdf 继承自 Prawn::Document 时,在向初始化发送参数时会导致此错误。

      我通过删除继承并使用实例变量和 get 方法来解决它,虽然不是最好的,但它可以工作。

      最终代码:

      class InvoicePdf 
        def initialize(invoice, view)
          @doc = Prawn::Document.new
        end
      
        def getDoc
          return @doc
        end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-14
        • 2014-01-11
        • 2019-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多