【发布时间】:2014-02-06 05:59:01
【问题描述】:
所以我正在尝试为我的网站制作一个邮件程序,以便在创建订单时向所有用户发送一封电子邮件。我不完全确定如何去做,所以我一直在尝试一堆不同的东西。目前,我搞砸了,我什至无法启动我的应用程序。 (不好。)
这是我的错误消息:/Users/Brawain/rails_projects/sample_app/config/initializers/setup_mail.rb:12:in `': uninitialized constant DevelopmentMailInterceptor (NameError)
目前,我的邮件是这样的:
订单控制器
class OrdersController < ApplicationController
def new
def create
@order = Order.new(user_params)
if @order.save
UserMailer.work_order(@user).deliver
else
render 'new'
end
end
end
end
我创建了一个名为 development_mail_interceptor.rb 的新文件,该文件位于环境文件夹的 config 文件夹中。
class DevelopmentMailInterceptor
def self.delivering_email(message)
message.subject = "#{message.to} #{message.subject}"
message.to = "cwolford@andover.edu"
end
end
user_mailer 视图中的文件 work_order.text.rb 中只有文本。
在初始化文件夹的配置文件夹中,我有一个名为 setup_mail.rb 的文件
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "student.andover.edu",
:user_name => "techmasterswork",
:password => "happycrazy",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = "localhost:3000"
Mail.register_interceptor(DevelopmentMailInterceptor) if Rails.env.development?
然后在 app 下我有一个名为 mailers 的文件夹,其中有文件 user_mailer.rb
class UserMailer < ActionMailer::Base
default from: "techmasterswork@gmail.com"
def work_order(user)
@user = user
mail to: user.email, subject: "Work Order Form"
end
end
我有一个隐秘的怀疑,它实际上最终应该是 order_mailer.rb,但我不确定。无论如何,我知道这需要很多帮助。你会如何解决这个问题?
【问题讨论】:
-
尝试将
DevelopmentMailInterceptor放入config/initializers
标签: ruby-on-rails actionmailer