Rails 3“操作”方法“无法找到 ActionMailer::Base”

发布于 2024-10-24 14:01:55 字数 1704 浏览 4 评论 0原文

无法在 Rails 3 中发送邮件,在浏览器中显示以下消息。

Unknown action

The action 'method' could not be found for ActionMailer::Base

这是我写的代码。

  1. Notifier.rb

class Notifier < ActionMailer::Base 
  default :from => "[email protected]"
  default_url_options[:host] = "localhost.com:3000"

defwelcome_email(用户)
@用户电子邮件=用户 @url = root_url 邮件(:to => user.email, :主题=> “欢迎来到该网站”) 结尾 结尾

2.UsersController.rb

 Notifier.welcome_email(@user).deliver

  1. application.rb

config.action_mailer.deliver_method = :smtp
    config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'xxxxxxx.com',
      :user_name => '[email protected]',
      :password => 'xxxx',
      :authentication => 'plain',
      :enable_starttls_auto => true
    } 

这是日志消息

AbstractController::ActionNotFound (动作“方法”不能是 已找到 ActionMailer::Base):
app/mailers/notifier.rb:1:in '
应用程序/控制器/users_controller.rb:17:in
创建'

渲染 C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.5/lib/action_dispatch/middleware/templates/rescues/unknown_action.erb 在救援/布局内(0.0ms)

Unable to send mail in rails 3. showing following message in browser.

Unknown action

The action 'method' could not be found for ActionMailer::Base

Here is the code I wrote.

  1. Notifier.rb

class Notifier < ActionMailer::Base 
  default :from => "[email protected]"
  default_url_options[:host] = "localhost.com:3000"

def welcome_email(user)
@user_email = user @url = root_url mail(:to => user.email, :subject => "Welcome to the site") end end

2.UsersController.rb

 Notifier.welcome_email(@user).deliver

  1. application.rb

config.action_mailer.deliver_method = :smtp
    config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'xxxxxxx.com',
      :user_name => '[email protected]',
      :password => 'xxxx',
      :authentication => 'plain',
      :enable_starttls_auto => true
    } 

Here is the log messages

AbstractController::ActionNotFound
(The action 'method' could not be
found for ActionMailer::Base):
app/mailers/notifier.rb:1:in <top
(required)>'
app/controllers/users_controller.rb:17:in
create'

Rendered
C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.5/lib/action_dispatch/middleware/templates/rescues/unknown_action.erb
within rescues/layout (0.0ms)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

路弥 2024-10-31 14:01:55

config.action_mailer.delivery_method

不是

config.action_mailer.deliver_method

我今天碰巧在我的配置中犯了同样的错字。

It's

config.action_mailer.delivery_method

not

config.action_mailer.deliver_method

.

I happened to make the same typo in my configuration today.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文