2016-11-18 74 views
0

我嘗試使用sidekiq來執行deliver_later,但我收到了錯誤消息。deliver_later使用sidekiq rails

這裏是我的設置

* execute redis 
redis-server 

* execute sidekiq 
bundle exec sidekiq -q default -q mailers 

* Gemfile 
gem 'sidekiq' 


* application.rb 
config.active_job.queue_adapter = :sidekiq 


#send email 
UserMailer.account_activation(@user).deliver_later 

我不知道如何解決這個問題。 下面是錯誤信息

50.345Z 41513 TID-oxh5ccnb8 ActionMailer::DeliveryJob JID-1c7ea4b33150d3805ff777aa INFO: start 
2016-11-18T17:13:50.413Z 41513 TID-oxh5ccnb8 ActionMailer::DeliveryJob JID-1c7ea4b33150d3805ff777aa INFO: fail: 0.068 sec 
2016-11-18T17:13:50.414Z 41513 TID-oxh5ccnb8 WARN: {"context":"Job raised exception","job":{"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"ActionMailer::DeliveryJob","queue":"mailers","args":[{"job_class":"ActionMailer::DeliveryJob","job_id":"c2ee4092-4e73-4e1f-857f-3e081594c735","queue_name":"mailers","priority":null,"arguments":["UserMailer","account_activation","deliver_now",{"_aj_globalid":"gid://academic-lib/User/8"}],"locale":"en"}],"retry":true,"jid":"1c7ea4b33150d3805ff777aa","created_at":1479489230.323255,"enqueued_at":1479489230.3232949,"error_message":"No route matches {:action=>\"edit\", :controller=>\"account_activations\", :email=>\"[email protected]\", :id=>nil} missing required keys: [:id]","error_class":"ActionView::Template::Error","failed_at":1479489230.4132302,"retry_count":0},"jobstr":"{\"class\":\"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper\",\"wrapped\":\"ActionMailer::DeliveryJob\",\"queue\":\"mailers\",\"args\":[{\"job_class\":\"ActionMailer::DeliveryJob\",\"job_id\":\"c2ee4092-4e73-4e1f-857f-3e081594c735\",\"queue_name\":\"mailers\",\"priority\":null,\"arguments\":[\"UserMailer\",\"account_activation\",\"deliver_now\",{\"_aj_globalid\":\"gid://academic-lib/User/8\"}],\"locale\":\"en\"}],\"retry\":true,\"jid\":\"1c7ea4b33150d3805ff777aa\",\"created_at\":1479489230.323255,\"enqueued_at\":1479489230.3232949}"} 
2016-11-18T17:13:50.414Z 41513 TID-oxh5ccnb8 WARN: ActionView::Template::Error: No route matches {:action=>"edit", :controller=>"account_activations", :email=>"[email protected]", :id=>nil} missing required keys: [:id] 
2016-11-18T17:13:50.414Z 41513 TID-oxh5ccnb8 WARN: /Users/chandler/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/journey/formatter.rb:50:in `generate' 
/Users/chandler/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/routing/route_set.rb:629:in `generate' 
/Users/chandler/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/routing/route_set.rb:660:in `generate' 
/Users/chandler/.rvm/gems/ruby-2.3.1/gems/actionpack-5.0.0.1/lib/action_dispatch/routing/route_set.rb:707:in `url_for' 

回答

0

這是錯誤

2016-11-18T17:13:50.414Z 41513 TID-oxh5ccnb8 WARN: ActionView::Template::Error: No route matches {:action=>"edit", :controller=>"account_activations", :email=>"[email protected]", :id=>nil} missing required keys: [:id]

你的郵件視圖示數出來。某處你有這樣的東西

edit_account_activation_path(@activation) 

其中@activation是零。因此錯誤。沒有對象,編輯路徑無效。

0

郵件視圖存在錯誤。 你需要檢查@activation對象,它傳遞爲nil。