私はRoRとSendgridを使って大量の電子メールを送信するWebアプリケーションを開発しています。 NoMethodErrorと未定義のメソッド#ActionMailer :: MessageDeliveryのための `to_model ':0xa6e7980意味しましたか? to_yaml。#<ActionMailer :: MessageDelivery:0xa6e7980>のための未定義メソッド `to_model '
電子メールは送信されて配信されますが、このエラーが表示されます。レールとルビーに新しいので、私は失われており、6時間近くインターネットを掘った後でもこのエラーを取り除くために何をすべきか分からないようです。 私のコードは次のとおりです。
1. test_mailer.rb
class TestMailer < ApplicationMailer
include SendGrid
sendgrid_enable :ganalytics, :opentrack
default from: '[email protected]'
def send_email(e_arr, s_arr)
@e_arr = e_arr
@s_arr = s_arr
headers['X-SMTPAPI'] = { :to => @e_arr }.to_json
mail(
:to => "[email protected]",
:subject => "Hello User",
).deliver
end
end
2. routes.rbを
Rails.application.routes.draw do
root 'static_pages#home'
get 'static_pages/home'
post 'static_pages/home', to: 'static_pages#func'
end
3.static_pages_controller.rb
class StaticPagesController < ApplicationController
skip_before_action :verify_authenticity_token
def home
end
def func
postvar = params[:Emails];
lines = postvar.split("\n");
arr = [];
lines.each {|line|
arr.push(line.split("@")[0]);
}
redirect_to TestMailer.send_email(lines, arr)
end
end
4. environment.rbに
# Load the Rails application.
require_relative 'application'
# Initialize the Rails application.
Rails.application.initialize!
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => 25,
:domain => "abc.com",
:authentication => :plain,
:user_name => "xyz",
:password => "pqr"
}
app/controllers/static_pages_controller.rb:12: 'func ' @Anthony –