【问题标题】:Cannot add inline attachment with actionmailer in rails 3无法在 Rails 3 中使用 actionmailer 添加内联附件
【发布时间】:2016-04-19 06:05:57
【问题描述】:

捆绑安装后,我无法再将内联图像添加到附件中。这是我得到的错误:

NoMethodError (undefined method `type_for' for MIME::Types:Class):
  app/mailers/welcome_mailer.rb:14:in `add_inline_attachment!'

很明显,type_for 方法是在类而不是对象上调用的。

这是我添加内联附件的方法,它遵循guidelines from ActionMailer

attachments.inline['photo.png'] = File.read('path/to/photo.png')

我已经测试过该文件确实存在并且可以读取。该问题似乎与 gem 相关。

【问题讨论】:

    标签: mime-types actionmailer inline-attachments


    【解决方案1】:

    升级到 2016 年 5 月 22 日发布的 mime-types 3.1。mime-types 2.x 仅计划更新 6 次,并于 2017 年 11 月结束生命周期,此后将不再提供支持。

    【讨论】:

      【解决方案2】:

      事实证明,更新 mime-types gem 是从 ActionMailer 的依赖项,从版本 2.99.1 更新到版本 3.0,因为这个 gem 没有被锁定。它仅作为依赖项被引入。

      来自Gemfile.lock

      mime-types (3.0)
        mime-types-data (~> 3.2015)
      mime-types-data (3.2016.0221)
      

      gem mime-types, (< 3) 显式添加到Gemfile 为我解决了这个问题。

      【讨论】:

      • 我不确定错误是什么,但我有 99% 的把握这不是正确的修复,因为那部分 mime-types 代码没有没有 改变。有人向 mime-types 报告了该问题,但您可以添加到此问题的任何详细信息都将帮助我解决 mime-types 上的问题(不太可能)或在上游获得正确的修复(更有可能)。 github.com/mime-types/ruby-mime-types/issues/117
      猜你喜欢
      • 1970-01-01
      • 2014-01-15
      • 2013-04-09
      • 2011-07-01
      • 1970-01-01
      • 2011-09-02
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多