나는 resque를 통해 전자 메일을 보내고 있습니다. 이 이메일은 로컬에서 개발이 잘되지만 스테이징 서버에서는 실패합니다.resque를 통해 전자 메일 보내기 : 해시로 처리되는 개체
'Admin'개체를 관리 개체로 처리하는 대신 해시로 보입니다. 어떤 아이디어?
account.rb
class Account < ActiveRecord::Base
after_commit :send_welcome_email
def send_welcome_email
SubscriptionNotifier.welcome(self).deliver
end
end
subscription_notifier.rb
class SubscriptionNotifier < ActionMailer::Base
def welcome(account)
@subscriber = account
mail(:to => account.admin.email, :subject => "Welcome!")
end
end
Resque 오류
SubscriptionNotifier Arguments
"welcome"
{"account"=>{"address_line1"=>nil, "address_line2"=>nil, "city"=>nil, "created_at"=>"2012-02-08T10:56:22-08:00", "currency"=>"United States Dollar (USD)", "deleted_at"=>nil, "description"=>nil, "email"=>"[email protected]", "full_domain"=>"www.test.net", "id"=>3, "initial_plan"=>nil, "latitude"=>nil, "longitude"=>nil, "name"=>"macs", "phone"=>nil, "setup_steps_complete"=>0, "state"=>nil, "time_zone"=>"Pacific Time (US & Canada)", "updated_at"=>"2012-02-08T10:56:22-08:00", "website"=>nil, "zip"=>nil}}
Exception
NoMethodError
Error
undefined method `admin' for #<Hash:0x0000000585aa70>
실제로 'SubscriptionNotifier.welcome (...). deliver'를 호출하기 위해 사용하는 코드는 무엇입니까? –
Resque 작업자 코드를 추가하고이를 호출하는 방법을 보여줄 수 있습니까? – bensie
게시물을 업데이트했습니다. Resque 작업자 코드는 subscription_notifier에 있습니다. 마치 Rails env가로드되지 않은 것처럼 보이지만 'rake resque'로 시작합니다 : work QUEUE = '*'RAILS_ENV = staging ' – 99miles