Итак, у меня есть приложение для рельсов, где recruiter
публикует задание (рекрутер has_many jobs
, все ассоциации настроены должным образом) и users
могут нажать кнопку Apply, которая отправляет электронное письмо с помощью Action Mailer рекрутер для этой конкретной работы.Отправить электронное письмо в Rails Application
User
и Recruiter
- это две отдельные модели, созданные Devise.
Работа была порождена rails g scaffold Job .....
Heres то, что я до сих пор:
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
пост. В электронном письме должно быть указано имя и адрес электронной почты current_user
. Выше это то, что я пробовал, но не отправляется электронное письмо.
Благодаря
Пожалуйста, задать вопрос, а не говорить, что вы сделали! –
Вы должны передать пользователю пользователя, почта не знает, что такое 'current_user' –
В чем вопрос? –