2016-06-23 48 views
0

所以,我有其中recruiter崗位工作(招聘has_many jobs,所有協會都設置正確)Rails應用程序和users能夠點擊一個應用按鈕,發送使用Action梅勒電子郵件到該特定工作的招聘人員。發送電子郵件在Rails應用程序

UserRecruiter是由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> 

的問題是,按下按鈕後,怎麼可能一個電子郵件有關job郵遞方式送交recruiter。該電子郵件需要包含current_user名稱和電子郵件。以上是我所嘗試的,但沒有電子郵件發送。

感謝

+0

請提出這樣的問題,而不是告訴我們你做了什麼! –

+0

您需要傳入用戶,郵件程序不知道什麼是'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 

BTW

你必須根據Rails doc

根據CRUD使用路線
1

使用動作郵件發送郵件。

class UserMailer < ApplicationMailer 
    default from: '[email protected]' 

    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 

欲瞭解更多信息,請使用此鏈接: -

http://guides.rubyonrails.org/action_mailer_basics.html

相關問題