2013-08-15 7 views
0

У меня есть 2 модели, пользователя и EmailЖурналы исходящих сообщений электронной почты в Rails

У меня есть after_create обратного вызова после создания пользователя, который отправляет подтверждение по электронной почте на адрес электронной почты пользователя.

user.rb

after_create :create_confirmation_email 

private 

    def creation_confirmation_email 
     UserMailer.account_create_confirmation(self).deliver 
    end 

creation_confirmation_email выше подключается к способу, в почтоотправителе/​​user_mailer.rb

user_mailer.rb

def account_create_confirmation(user) 
    I18n.locale = 'pt' 
    @user = user 

    mail(from: '[email protected]', to: @user.email, subject: 'Bem-vindo ao Miigo') do |format| 
     format.text 
     format.html 
    end 
    end 

Моя электронная почта модель имеет следующие атрибуты:

reply_to: string 
first_name: string 
last_name :string 
subject: string 

Теперь то, что я хочу, это действие, которое регистрирует информацию подтверждения по электронной почте после каждой доставки.

Можете ли вы предложить обходной путь или обратный вызов для этого?

любые обходные пути будут оценены

ответ

1

Вы всегда можете написать функцию обратного вызова в вашем ActionMailer классе, this guide объясняет все это.

Если вы используете Rails 3, IIRC, вы можете добавить функциональность обратного вызова в классы ActionMailer, включив AbstractController::Callbacks.

Что-то вроде:

class MyMailer < ActionMailer::Base 
    include AbstractController::Callbacks 

    after_filter :audit_email 

    def account_create_confirmation(user) 
    @subject = 'Bem-vindo ao Miigo' 
    # ... 
    end 

    def audit_email 
    EmailAudit.create(subject: @subject, ...) 
    end 
end 
+0

Спасибо. И как я могу связать тему письма? Извините, что я первый раз использую эту почтовую рассылку. – xirukitepe

+0

Извините, отредактировал мой ответ :). –

+1

спасибо mike :) the best – xirukitepe

Смежные вопросы