Ruby on rails 邮件发送无记录
我运行的任务,以取消一个网站,以获得一些音乐会的日期 我的任务是查找/更新音乐会(日期和城市),并将其记录在数据库中。我可以在rails控制台中找到它们,也可以在索引和显示视图中显示它们。 顺便说一句,它似乎没有通过ConcertController中的create方法(我尝试了binding.pry) 任务运行后,如果发现新记录,我希望收到电子邮件警报。当我收到电子邮件时,它不完整: concert\u mailer/new\u dates.html.erbRuby on rails 邮件发送无记录,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我运行的任务,以取消一个网站,以获得一些音乐会的日期 我的任务是查找/更新音乐会(日期和城市),并将其记录在数据库中。我可以在rails控制台中找到它们,也可以在索引和显示视图中显示它们。 顺便说一句,它似乎没有通过ConcertController中的create方法(我尝试了binding.pry) 任务运行后,如果发现新记录,我希望收到电子邮件警报。当我收到电子邮件时,它不完整: concert\u mailer/new\u dates.html.erb <p>The boys
<p>The boys are playing at <%= @concert.city %> on <%= @concert.date %></p>
#returns The boys are playing at on
<p>The boys are playing at <%= @concert.inspect %> </p>
#returns: The boys are playing at <Concert id: 1, date: nil, city: nil, created_at: "2017-12-05 20:32:09", updated_at: "2017-12-05 20:32:09">
class Concert < ApplicationRecord
after_create :send_notification
def send_notification
ConcertMailer.new_dates(self).deliver_now
end
end
class ConcertMailer < ApplicationMailer
default from: "concert@mountain-men.fr"
def new_dates(concert)
@concert = concert
mail( to: "email@exemple.com",
subject: "The boys are back in town"
)
end
end
concert.rb
<p>The boys are playing at <%= @concert.city %> on <%= @concert.date %></p>
#returns The boys are playing at on
<p>The boys are playing at <%= @concert.inspect %> </p>
#returns: The boys are playing at <Concert id: 1, date: nil, city: nil, created_at: "2017-12-05 20:32:09", updated_at: "2017-12-05 20:32:09">
class Concert < ApplicationRecord
after_create :send_notification
def send_notification
ConcertMailer.new_dates(self).deliver_now
end
end
class ConcertMailer < ApplicationMailer
default from: "concert@mountain-men.fr"
def new_dates(concert)
@concert = concert
mail( to: "email@exemple.com",
subject: "The boys are back in town"
)
end
end
class Concert
concert\u mailer.rb
<p>The boys are playing at <%= @concert.city %> on <%= @concert.date %></p>
#returns The boys are playing at on
<p>The boys are playing at <%= @concert.inspect %> </p>
#returns: The boys are playing at <Concert id: 1, date: nil, city: nil, created_at: "2017-12-05 20:32:09", updated_at: "2017-12-05 20:32:09">
class Concert < ApplicationRecord
after_create :send_notification
def send_notification
ConcertMailer.new_dates(self).deliver_now
end
end
class ConcertMailer < ApplicationMailer
default from: "concert@mountain-men.fr"
def new_dates(concert)
@concert = concert
mail( to: "email@exemple.com",
subject: "The boys are back in town"
)
end
end
class-ConcertMailer
在用数据更新Concert
对象之前,将调用用于触发电子邮件的创建后回调。在保存Concert
对象之前,请尝试向字段中添加值,而不是创建空对象
大概是这样的:
data.each do |concert|
c = Concert.new
c.date = concert[0]
c.city = concert[1]
c.save
end
或者这个:
data.each do |concert|
Concert.create(date: concert[0], city: concert[1])
end
这样,您将在触发\u create回调后的之前保存值