2012-11-15 3 views
1

내 이메일 템플릿에서 도우미 메서드에 액세스하려고합니다. 도우미는 컨트롤러에 정의되어 있으며 :helper_method입니다. 어떻게해야합니까? 헬퍼를 사용하는 방법을 알고 있습니다. 파일이 ActionMailer에 있지만, 이것은 다릅니다.ActionMailer에서 컨트롤러 도우미에 액세스

편집

내가 매일 메일 방식에 그렇게해야 할 것 때문에, 우송 방법으로 도우미의 결과를 전달하지 않으려는

.

+0

"도우미가 컨트롤러에 정의되어 있습니까?" 또한 액세스하려는 도우미 메서드의 메서드 정의를 제공하면 사용할 좋은 패턴을 찾는 데 도움이 될 수 있습니다. –

답변

2

메일러 메소드에 current_user를 전달하십시오. 메일러는 세션 변수에 액세스해서는 안되며 current_user 메소드는 세션 변수에 의존합니다. 이메일을 백그라운드 프로세스로 보내면 어떨까요? 누가 current_user가 될 것입니까?

MyMailer.hello_email(current_user).deliver 

class MyMailer < ActionMailer::Base 
    def hello_email(user) 
    @user = user 
    end 
end 
+0

나는 귀하의 평가에 동의합니다. 액세스하려고하는 도우미는 실제로 세션 매개 변수를 쿼리하지 않고 사이트 전체 범위를 쿼리하여 모든 단일 메일 메서드에 전달하는 것이 번거로울 수 있습니다. – bevanb

관련 문제