轨道上的红宝石 - ActionMailer 3 错误 - 未定义的方法"编码"Welcome"!



我在向 rails 3 中的注册用户发送邮件时收到此错误:

undefined method 'encode!' for "Welcome":String

我有以下代码

 @content = content
 mail(:to => content[:email], :subject => "test")
如果有主题,

则显示上述错误消息,如果我删除主题内容

@content = content
mail(:to => content[:email], :subject => "") no error message sending with out subject  

我正在使用:

  • 导轨版本 3.0.1
  • 操作邮件 3.0.1

邮件 gem 检查编码的全局常量。如果它由任何 gem 或您的代码定义,那么它调用编码!在邮件对象上。下面是来自 UnstructuredField 邮件 gem 类的调用:

def encode(value)
  value.encode!(charset) if defined?(Encoding) && charset
  (value.not_ascii_only? ? [value].pack("M").gsub("=n", '') : value).gsub("r", "=0D").gsub("n", "=0A")
end

对我来说,它是邮件主题,一个字符串,所以我打了补丁字符串:

class String
  def encode!(value)
   #Do any encoding or simply return it
   value
  end
end

尝试使用 ruby 版本 1.9我在将 devise 与 rails 3.0.3 和 ruby 1.8.7 一起使用时出现此错误。我迁移到 ruby 1.9,它就像一个魅力。

最新更新