所以我有一个rails应用程序,recruiter
发布一份工作(招聘人员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
乔布斯#show view:
<%= 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
帖子。电子邮件需要包含current_user
名称和电子邮件。以上是我尝试过的,但没有发送电子邮件。
由于
答案 0 :(得分:2)
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使用路线答案 1 :(得分:1)
使用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
有关更多信息,请使用此链接: -