【问题标题】:NoMethodError undefined method mail forNoMethodError 未定义的方法邮件
【发布时间】:2012-07-03 16:57:57
【问题描述】:

在 Ruby on rails (3.2.6) 中设置邮件程序 (3.2.6) 后,我收到此错误:

NoMethodError(# 的未定义方法“邮件”):

我的 user_mailer.rb 看起来像这样:

class UserMailer < ActionMailer::Base
  default :from => "test@test.com"

  def activation_mail(user)
    @user = user
    mail(:to => user.mail, :subject => "Registration")
  end
end

我遵循此处提供的示例:http://guides.rubyonrails.org/action_mailer_basics.html

在配置文件中我添加了这一行: config.action_mailer.delivery_method = :test 我还尝试了 :smtp 和 gmail 配置。

我错过了什么?

【问题讨论】:

  • 你能接受一个答案吗?

标签: actionmailer ruby-on-rails-3.2


【解决方案1】:

我最近遇到了类似的问题,通过替换来纠正它:

def self.activation_mail()

def activation_mail()

【讨论】:

    【解决方案2】:

    你应该尝试替换

    def activation_mail(user)
        @user = user
        mail(:to => user.mail, :subject => "Registration")
      end
    

    def activation_mail(user)
        @user = user
        mail(:to => @user.mail, :subject => "Registration")
      end
    

    【讨论】:

      【解决方案3】:

      这是一个拼写错误。您的 user.mail 不存在。也许它应该是 user.email 或其他。

      【讨论】:

        【解决方案4】:

        我敢打赌,您传递的“用户”对象要么是 1) 未正确实例化,要么是 2) 数组而不是单个用户对象

        【讨论】:

          【解决方案5】:

          我发现您的邮件视图中的拼写错误可能会导致此问题。错误信息具有误导性。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-04-24
            • 2015-05-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-01
            相关资源
            最近更新 更多