문제는 클래스 메소드 그래서
와 생산 모드에서 레일/승객과 함께, 내가 솔루션 주위에 작업을했다 ... 나는 예를 메소드를 호출하려고 클래스 전화를 피할 수 방법.
예제를 참조하십시오. 그럼 .. 나는 배경에서 다음 메소드를 호출 할 필요가
UserMailer.deliver_newsletter(email)
가정, 나는 새로운 클래스가
class DelayClassMethod
def initialize(receiver_name, method_name, options={})
@receiver_name = receiver_name
@method_name = method_name
@parameters = options[:params] || []
end
def perform
eval(@receiver_name).send(@method_name, *@parameters)
end
end
을 DelayClassMethod 및
DelayClassMethod.new("UserMailer", "deliver_newsletter", :params=>[email]).delay
에 의해 지금 백그라운드에서 방법을 실행할 수 있습니다 생성 따라서 인스턴스 메서드를 백그라운드에서 실행 중이므로 클래스 메서드가 실행됩니다.
또 다른 예 ..
내가
Product.list_all_by_user_and_category(user, category).delay
은 다음 그것은 아니, 난 단 하나의 버전을 데
DelayClassMethod.new("Product", "list_all_by_user_and_category", :params => [user, category]).delay
실행할 수 있습니다 실행하려는 가정합니다. 나는 번들 exec rake 작업을 시도했다 : work하지만 여전히 같은 오류. –