ruby-on-rails - 无方法错误 : undefined method `mail' for main:Object on rails console

标签 ruby-on-rails ruby actionmailer

我正在尝试测试邮件程序的工作。通常在 Rails 上,我首先在控制台级别测试我的代码逻辑,一旦成功,我将其放入真正的源代码中。在 ApplicationMailer 上工作时,我正在尝试做同样的事情。我遵循了其他一些解决方案,首先在 Rails 控制台上运行以下命令以首先设置 ActionMailer

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.smtp_settings = {
  address: 'smtp.gmail.com', 
  port: 587, 
  domain: 'gmail.com',
  authentication: 'plain', 
  enable_starttls_auto: true, 
  user_name: '***********',
  password: '******'
}

然后我运行我的代码:

y.include? x
  if true
    @receiver = Model.where(category_id: "#{x}").pluck(:email)
    mail(to: @receiver, subject: @subject)
  end

我收到以下错误:

NoMethodError: undefined method `mail' for main:Object
    from (irb):19

谁能告诉我如何让它在 Rails 控制台上运行吗?

最佳答案

您可以使用以下方式测试邮件

ActionMailer::Base.mail(from: "test@example.co", to: @receiver, subject: @subject, body: "Test").deliver

关于ruby-on-rails - 无方法错误 : undefined method `mail' for main:Object on rails console,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42529044/

相关文章:

ruby-on-rails - 处理 heroku 上不存在的表的 drop_table 迁移

jquery - 为什么 Assets 管道找不到我的 JQuery?

ruby-on-rails - 使用 RSpec 和 Factory_Girl 在 Rails 中测试具有关系和回调的模型

mysql - Rails - 如何修复/转换不正确的字符串值?

ruby-on-rails - 模型内的延迟作业 - 参数数量错误

ruby-on-rails - Datatables TableTools 因找不到文件错误而停止工作

ruby-on-rails - 如何跨多个应用程序共享 rspec 示例?

ruby-on-rails - 带有 SMTP 的 ActionMailer - 错误的收件人地址语法

ruby-on-rails - 如何设置设计邮件发件人名称?

ruby - 链接到 OS X 上特定的 Oracle 即时客户端动态库