2016-08-05 58 views
0

我試着去學習如何使用軌道寄件人。軌道4 - 梅勒找不到模板

我已經做了郵件文件夾,用文件夾內叫user_mailer.rb。它具有:

class UserMailer < ActionMailer::Base 

    layout 'transactional_mailer' 

    def user_invite 

    mail(
     :subject => "You've been invited to join a research project team", 
     :to => '[email protected]', 
     :from => '[email protected]' 
    ) 
    end 
end 

在我的佈局transactional_mailer.html.erb,我有:

<!DOCTYPE html> 
<%= yield %> 

<style> 

body { 
    margin:0; 
    padding:0 
    } 

</style> 

然後,在我的意見/用戶/ user_invite.html.erb

嗨,

當我保存所有這一切,並在我的控制檯嘗試它,通過編寫:

UserMailer.user_invite.deliver_now 

我得到一個錯誤,指出:

UserMailer#user_invite: processed outbound mail in 65.4ms 
ActionView::MissingTemplate: Missing template user_mailer/user_invite with "mailer". Searched in: 
    * "user_mailer" 

我不知道這是什麼錯誤消息意味着或者我如何解決這個問題。任何人都可以看到我做錯了什麼?

我也盡我叫'user_mailer文件的意見目錄下製作一個文件夾。在那個文件夾中,我嘗試添加一個名爲user_invite.html.erb的文件 - 但它也不起作用。

回答

0

問題是在這裏:

你必須把你的觀點user_invite.html.erbviews/user_mailer/user_invite.html.erbviews/users/user_invite.html.erb

如果您創建郵件手動刪除它,然後從控制檯嘗試

$ rails g mailer user user_invite 

然後會自動生成一個名爲user_invite的新def並在user_mailer文件夾中查看。

我希望它現在的作品

+0

沒有那是我的第二次嘗試(如上所述)。它也不工作。我得到同樣的錯誤消息之前 – Mel

+0

而且 - 我不能嘗試你的建議,使用一臺發電機,因爲我得到這個錯誤:要麼已經在你的應用程序中使用或Ruby on Rails的保留名「用戶」。請選擇一個替代品並再次運行此生成器。 – Mel

+0

當您嘗試@Pradeep Sapkota的第一個解決方案時,結果如何?即:'將user_invite.html.erb放入views/user_mailter/user_invite.html.erb?' –

0

嘗試從您的應用程序郵件定義佈局。

class ApplicationMailer < ActionMailer::Base 
    default from: 'Example <[email protected]>' 
    layout 'transactional_mailer' #app/views/layouts/transactional_mailer.html.erb 
end