2011-05-16 70 views
1

而在Rails3中發送郵件給註冊用戶,我得到這個錯誤:ActionMailer 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 

我使用的是:

  • 的Rails 3.0.1版本
  • 行動郵件3.0.1
+0

什麼版本的Ruby您使用的是? – McStretch 2011-05-16 14:08:28

+0

Ruby版本1.8.7 – Test 2011-05-17 04:58:09

回答

0

嘗試使用紅寶石版本1.9 我同時使用與導軌3.0.3和1.8.7的紅寶石設計得到這個錯誤。 我遷移到紅寶石1.9,它的工作就像一個魅力。

1

郵件寶石檢查編碼的全局常量。如果它由任何寶石或你的代碼定義,那麼它調用編碼!在郵件對象上。下面是這個電話來自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 

對我來說是郵件主題,一個字符串,所以我猴子修補字符串:

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