Ошибка ActionMailer 3 - неопределенный метод «кодировать!» для "Добро пожаловать": Строка - PullRequest
1 голос
/ 16 мая 2011

Я получаю эту ошибку при отправке почты зарегистрированному пользователю в rails3:

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  

Я использую:

  • Rails версия 3.0.1
  • action mailer 3.0.1

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

mail gem проверяет закодированную глобальную константу.Если он определен каким-либо гемом или вашим кодом, он вызывает кодирование!на почтовом объекте.Вот этот вызов из класса почтовых гемов UnstructuredField:

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

Для меня это была тема почты, строка, так что я обезьяна залатала строку:

0 голосов
/ 06 июня 2011

Попробуйте использовать ruby ​​версии 1.9. Я получил эту ошибку при использовании devise с rails 3.0.3 и ruby ​​1.8.7.Я перешел на ruby ​​1.9, и он работал как шарм.

...