2011-04-12 3 views
0

레일즈 사용 3. 아래 코드의 첫 번째 스 니펫에 따라 메일러보기에서 부분 렌더링을 시도 할 때이 오류의 의미를 Google 검색하기가 어렵습니다.메일러보기에서 부분 렌더링을 시도 할 때 이상한 객체 문제가 발생했습니다.

ActionView::Template::Error (undefined method `long_date' for #<#<Class:0x00000102452ab0>:0x00000102440b30>): 

가 여기 내 메일러 뷰의 (email_note.html.erb)

<div style="width:500px;"> 
    <%= render :partial => "shared/note", :object => @note %> 
</div> 

이 내가 그 오류를 던지고 내 부분에 만들고있어 호출은 다음과 같습니다

오류입니다 < % = long_date (note.created_at) %>

long_date는 다른 동작에서 부분적인 @note 객체를 지정한 경우 항상 작동했습니다 (예 : 'show '내 notes_controller). 이 날 (매우 가능성이 레일에

class UserMailer < ActionMailer::Base 
default :from => "[email protected]" 

    def email_note(address,note_id) 
    @note = Note.find(note_id) 
    mail(:to => "#{address}", :subject => "Note from repository: #{@note.subject}") 
    end 
end 

인해 일부 보인다 방법

def long_date(date) 
    date.strftime('%A %b %e, %G') 
end 
여기

내 ActionMailer 클래스 (주소 및 note_id 내 notes_controller에 '이메일'액션에서 전송)입니다 내 부분에 대한 감독) 내 노트 객체를 내 노트 클래스로 해석하지 않지만 어떻게 수정해야할지 모르겠다. 도움을 많이 주시면 감사하겠습니다.

답변

1

기본적으로 ActionMailer 템플릿은 ActionView 템플릿과 동일한 도우미를 공유하지 않기 때문입니다. 클래스 UserMailer

include DateTimeHelper 
+0

내가 추가 내 – gobb0

+0

아래 DateTimeHelper을 포함한다 : 당신이 당신의 우편물 템플릿에서 헬퍼를 사용해야하는 경우 다음 ActionMailer 클래스의 모듈을 포함하십시오 Base 다음 오류가 발생합니다. NameError (초기화되지 않은 상수 UserMailer :: DateTimeHelper) : – gobb0

+0

메일러 위에 파일이 필요할 가능성이 큽니다. 그게 효과가 있니? – joshnesbitt