在 Rails 应用程序中发送电子邮件
Send email in Rails Application
所以我有一个 rails 应用程序,其中 recruiter
post 是一份工作(招聘人员 has_many jobs
,所有协会都已正确设置)和 users
能够单击应用按钮,使用 Action Mailer 向该特定职位的招聘人员发送电子邮件。
User
和 Recruiter
是 Devise 创建的两个独立模型。
职位由 rails g scaffold Job .....
生成
这是我目前的情况:
ApplyMailer.rb:
class ApplyMailer < ApplicationMailer
def new_apply(job)
@user = current_user
@job = job
mail to: @job.recruiter.email,
subject: "Someone whats to appy for #{@job.title}"
end
end
工作#显示视图:
<%= button_to(apply_path, class:"btn btn-info") do %>
Apply
<% end %>
Jobs_controller.rb:
def sendemail
@job = Job.find(params[:id])
ApplyMailer.new_apply(@job).deliver_now
end
Routes.rb
post '/apply' => 'jobs#sendemail'
首先,我不确定我是否以正确的方式来实现我想要实现的目标。我想做的是:
所以按钮在 jobs#show
页面上,它应该将 job
作为参数并发送电子邮件到 associated recruiter
。 current_user (User model)
将是试图申请该工作的用户,因此在电子邮件视图中它会显示用户的姓名(请在下方查看)。
new_apply.html.erb:
<div class="">
<h2><%= @user.profile.name %> want to apply for the job</h2>
</div>
问题是按下按钮后如何向 recruiter
发送关于 job
post 的电子邮件。电子邮件需要包含 current_user
名称和电子邮件。以上是我试过的方法,但是没有发送电子邮件。
谢谢
在你的控制器中
def create
# creating your job
if @job.create
ApplyMailer.new_apply(current_user, job).deliver_now
else
# what you want
end
end
并将您的用户添加到邮件
class ApplyMailer < ApplicationMailer
def new_apply(user, job)
@user = user
@job = job
mail to: @job.recruiter.email,
subject: "Someone whats to appy for #{@job.title}"
end
end
顺便说一句
你必须根据 Rails doc
根据 CRUD 使用路由
使用 Action Mailer 发送邮件。
class UserMailer < ApplicationMailer
default from: 'notifications@example.com'
def welcome_email(user)
@user = user
@url = 'http://example.com/login'
mail(to: @user.email,
subject: 'Welcome to My Awesome Site',
template_path: 'notifications',
template_name: 'another')
end
end
有关更多信息,请使用此 link:-
所以我有一个 rails 应用程序,其中 recruiter
post 是一份工作(招聘人员 has_many jobs
,所有协会都已正确设置)和 users
能够单击应用按钮,使用 Action Mailer 向该特定职位的招聘人员发送电子邮件。
User
和 Recruiter
是 Devise 创建的两个独立模型。
职位由 rails g scaffold Job .....
这是我目前的情况:
ApplyMailer.rb:
class ApplyMailer < ApplicationMailer
def new_apply(job)
@user = current_user
@job = job
mail to: @job.recruiter.email,
subject: "Someone whats to appy for #{@job.title}"
end
end
工作#显示视图:
<%= button_to(apply_path, class:"btn btn-info") do %>
Apply
<% end %>
Jobs_controller.rb:
def sendemail
@job = Job.find(params[:id])
ApplyMailer.new_apply(@job).deliver_now
end
Routes.rb
post '/apply' => 'jobs#sendemail'
首先,我不确定我是否以正确的方式来实现我想要实现的目标。我想做的是:
所以按钮在 jobs#show
页面上,它应该将 job
作为参数并发送电子邮件到 associated recruiter
。 current_user (User model)
将是试图申请该工作的用户,因此在电子邮件视图中它会显示用户的姓名(请在下方查看)。
new_apply.html.erb:
<div class="">
<h2><%= @user.profile.name %> want to apply for the job</h2>
</div>
问题是按下按钮后如何向 recruiter
发送关于 job
post 的电子邮件。电子邮件需要包含 current_user
名称和电子邮件。以上是我试过的方法,但是没有发送电子邮件。
谢谢
在你的控制器中
def create
# creating your job
if @job.create
ApplyMailer.new_apply(current_user, job).deliver_now
else
# what you want
end
end
并将您的用户添加到邮件
class ApplyMailer < ApplicationMailer
def new_apply(user, job)
@user = user
@job = job
mail to: @job.recruiter.email,
subject: "Someone whats to appy for #{@job.title}"
end
end
顺便说一句
你必须根据 Rails doc
根据 CRUD 使用路由使用 Action Mailer 发送邮件。
class UserMailer < ApplicationMailer
default from: 'notifications@example.com'
def welcome_email(user)
@user = user
@url = 'http://example.com/login'
mail(to: @user.email,
subject: 'Welcome to My Awesome Site',
template_path: 'notifications',
template_name: 'another')
end
end
有关更多信息,请使用此 link:-