Ala*_*n S 5 ruby-on-rails actionmailer
我是rails的新手,并使用rails-2.3.5和ruby-1.8.7.这是我的notifier.rb模型:
# app/models/notifier.rb
class Notifier < ActionMailer::Base
default_url_options[:host] = "foo.com"
#This method sends an email with token to users who request a new password
def password_reset_instructions(user)
subject "Password Reset Instructions"
from "Support Team<support@foo.com>"
recipients user.email
sent_on Time.now
body :edit_password_reset_url =>
edit_password_reset_url(user.perishable_token)
end
end
Run Code Online (Sandbox Code Playgroud)
当我调用此方法时,我收到以下错误:
Net::SMTPFatalError in Password resetsController#create
555 5.5.2 Syntax error. 36sm970138yxh.13
Run Code Online (Sandbox Code Playgroud)
我发现一篇文章说这个问题是ruby-1.8.4中的一个错误,修复方法是从:from字段中删除尖括号.果然,如果我只使用"support@foo.com"代替"支持团队<support@foo.com>",一切正常.
但是,在rails-2.3.5 API或ActionMailer Basics rails指南中没有引用此问题,实际上它们在其actionmailer设置示例中都显示"name <mail address>".谁知道我做错了什么?
Rails/ActionMailer 打破了这一点:
https://rails.lighthouseapp.com/projects/8994/tickets/2340
由于像这样的关键错误在 Rails 项目中没有得到高优先级或临时版本来修复它们,因此您要么必须自己修补它,要么等待很长的时间才能修复它。就像 Rails 2.3.4 中出现的这个严重错误一样,它使 Rails 完全无法用于 Ruby 1.9:https://rails.lighthouseapp.com/projects/8994/tickets/3144-undefined-method-for-string-ror -234。花了几个月的时间才解决这个问题。
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |