2015-04-01 26 views
5

iç kontrolör: user_mailer.rb içMailer yöntemi aranmıyor mu?

def update 
    @user.update({approved: true}) 
    UserMailer.send_approved_mail(@user) 
    redirect_to(root_url) 
end 

raylar denetleyicisi yönteminde yukarıda 4.1.0
class UserMailer < Devise::Mailer 
    def send_approved_mail(user) 
    @resource = user 
    email_body = render "user_activated_mail" 
    if @resource.valid? 
    client = Postmark::ApiClient.new(ENV["POSTMARK_API_KEY"]) 
    client.deliver(from: ENV["POSTMARK_SIGNATURE"], 
     to: @resource.email, subject: "User Activation information.", 
     tag: 'account-activated', :content_type => "text/html", 
     html_body: email_body) 
    end 
    end 
end 

çağrıldığını ve e-posta gönderiliyor, ama denetleyici 4,2 mailler yöntemi raylar çağrılmıyor, ancak raylar konsol çağrıldığında çalışır. Posta damgası ve yapılandırma dosyalarında gerekli tüm yapılandırmayı yaptım. Tek şey raylar içinde 4.1.0 mailler iç denetleyici alır ama raylarda 4.2 değil ama raylar konsol çağrıldığında çalışır. Kesin sebep tam olarak ne anlama geliyor?

cevap

5

Burada fark davranış Raylar 4.2 tanıtılan yeni varsayılan: Aktif İş ve #deliver_later tanıtılmasıyla

... (bir mektubundaki) Örnek yöntemlerinin çağırma kadar ertelenir delivery_now veya delivery_later denir.

Ayrıntılar için Rails 4.2 upgrade guide'a bakın. Yine de endişelenmeyin. Postmark'ı ActionMailer ile hala kullanabilirsiniz. official Postmark Rails gem, Postmark için ActionMailer ile bir entegrasyon sağlar. Bunu kullanarak, postacılarınızı, kodunuzdaki Postmark bağlantılarını manuel olarak yönetmeye gerek kalmadan düzenli olarak Rails postacılarına yazabilmelisiniz.

P.S. Wildbit'de (Postmark'ın yaratıcıları) çalışıyorum. Herhangi bir zamanda doğrudan bizimle iletişime geçmekten çekinmeyin.

+0

Teşekkürler! Temochka, sorunlara koştuğunda emin olacak. – codemilan

İlgili konular