Resque

2011-11-14 9 views
12

के माध्यम से देवता ईमेल भेजना मैं Resque के माध्यम से डेविस ईमेल भेजने की कोशिश कर रहा हूं।Resque

नियमित ईमेल केवल Resque के माध्यम से भेजा जा रहा है ठीक है। और देवताओं को ईमेल ठीक से भेजा जाता है, लेकिन Resque के माध्यम से ईमेल नहीं बनाते हैं। मुझे "वैध मैपिंग नहीं मिल सका" जिसका अर्थ है कि मेरे सहायक ओवरराइड को उठाया नहीं जा रहा है।

मैं इस http://shaker.4-dogs.biz/2011/08/06/using-resque-to-send-mail-for-devise/

अजीब बात है अनुसरण कर रहा हूं कि यह मैं वसीयत की स्थानीय प्रतिलिपि का उपयोग कर रहा है और वसीयत, जो जब मैं सिर्फ अकेले वसीयत का उपयोग हिट हो जाता है में 'initialize_from_record' में breakpoints जोड़ने डिबग करने के लिए । लेकिन जब मैं resque के माध्यम से वसीयत ईमेल भेजने breakpoints मारा नहीं किए जाते हैं:

class ResqueMailer < Devise::Mailer 
    include Resque::Mailer 
end 

config.mailer = "ResqueMailer" 

और resque बजाय इस तरह के रूप में एक पैक मणि पथ अपने स्थानीय स्रोत से पता चलता है और नहीं:

/Users/mm/.rvm/gems/[email protected]/gems/devise-1.4.9/lib/devise/mailers/helpers.rb:20:in `devise_mail' 

किसी भी विचार क्यों यह मेरे स्थानीय मणि स्रोत का उपयोग नहीं कर रहा है और/या मेरे डेविस ईमेल भेजने के लिए Resque कैसे प्राप्त करें?

+0

यह resque_mailer (2.2.3) के नवीनतम संस्करण के साथ तय किया गया प्रतीत होता है। – tee

उत्तर

4

अद्यतन: आप resque_mailer के साथ ऐसा करने की जरूरत नहीं है> = 2.2.3

यह Resque लिए एक तर्क है, जो खत्म हो जाएगा के रूप में पूरा मॉडल भेजता है के बाद से https://github.com/devton/resqued_devise_mailer पर बंदर पैच काम नहीं किया वस्तु को मार्शल करना और फेंक दिया गया है (https://github.com/defunkt/resque पर दृढ़ता देखें)।

यहाँ क्या मेरे लिए काम किया है: https://github.com/zapnap/resque_mailer

gem 'resque_mailer' 

lib/devise_resque_mailer.rb जोड़ें::

resque_mailer मणि का उपयोग करके देखें https://gist.github.com/1375726

कि एक नया DeviseResqueMailer वर्ग पैदा करता है कि नहीं बदलेगा Resque :: Mailer में कोई मौजूदा व्यवहार, ताकि आप अन्य मॉड्यूल में उस मॉड्यूल का उपयोग कर सकें।

config/initializers/devise.rb:

Devise.setup do |config| 
    require 'devise_resque_mailer' 
    config.mailer = "DeviseResqueMailer" 

एप्लिकेशन/विचारों/वसीयत/मेलर/अनुप्रयोग के लिए/विचारों/devise_resque_mailer से अपने चिंतन करना विचारों/

+1

उपरोक्त हैक resque_mailer (2.2.3) के नवीनतम संस्करण के साथ अनावश्यक है। – tee

+0

उपरोक्त "हैक" क्या है? संपूर्ण उत्तर या उत्तर का एक विशिष्ट हिस्सा? –

+0

पूरा जवाब हैक है। Resque_mailer को 2.2.3+ के रूप में बॉक्स से बाहर काम करना चाहिए। – tee

8

एक आसान तरीका है उपयोग करने के लिए है ले जाएँ devise-async मणि।

अपने Gemfile

# Gemfile 
gem "devise-async" 

कॉन्फ़िगर तैयार करने मणि जोड़े प्रॉक्सी मेलर उपयोग करने के लिए।

# config/initializers/devise.rb 
config.mailer = "Devise::Async::Proxy" 

[वैकल्पिक] और अंत में Resque उपयोग करने के लिए ईमेल enqueue को DeviseAsync बताओ।

# config/initializers/devise_async.rb 
Devise::Async.backend = :resque 

मणि साइडकीक और देरी :: नौकरी का भी समर्थन करता है।

+0

क्या यह मणि रेजम मेलर के माध्यम से जाता है या यह एक पूरी तरह से अलग कतार है? –

संबंधित मुद्दे