2013-08-29 4 views
1

ApplicationHelper에서 finTime이라는 메소드가 있습니다. "ActionView :: 템플릿 : delayed_job에서커스텀 뷰에서 도우미 메소드 호출하기

def finTime(time) 
end 

나는 render_to_string 기능이 exportPdf.html.erb에서

class ExportJob < Struct.new(:time1,:time2, :survey_id) 
    def perform 
     ac = ActionController::Base.new() 
    html = ac.render_to_string(:template => "pages/exportPdf.html.erb",:layout => "layouts/exportPdf",:formats => :html 
    end 
end 

가 나는 오류를 가지고 함수 finTime에게

<%= finTime(f.created_at) %> 

전화가 오류 : 정의되지 않은 메소드 'finTime'for # < #Class : 0x6db8eb0> : 0x8321928> "

그래서이 예제에서는 exportPdf.html.erb에서 finTime 메서드를 호출 할 수있는 방법을 묻고 싶습니다. include와 helper를 사용하려고했지만 작동하지 않습니다. 감사합니다.

답변

0

가 여기에 갈 많은 정보는 아니지만, 당신의 정의에 인수가 없음을 하나의 가능성이 될 수 - 그냥 finTime

입니다하지만 전화에 당신이 f.created_at의 인수를 줄 - 어쩌면 그 원인을 오류, 어쩌면 아닙니다. 전체 오류는 무엇입니까?

관련하여 메서드 이름에 대한 일반적인 방법은 snake case이므로 finTimefin_time이어야합니다.

편집 : 코드의 자세한 내용을 보지 않고는, 예를 들어

<%= finTime(f.created_at) %> 

은 당신의 코드에서 무엇을하는 것이 여전히 어려운가요? finTime()는 방법이다, 그래서 모델에 호출 할 수있다 - model.finTime(time)

이 라인에서 누락 끝 괄호도있다 :

html = ac.render_to_string(:template => "pages/exportPdf.html.erb",:layout => "layouts/exportPdf",:formats => :html 

것들 모두가 당신의 질문에만 문제가있는 경우, 그리고 귀하의 코드가 아닌 경우 을 부분 숫자로 inspect 또는 methods으로 바꾸어보십시오. 그래도 오류가 발생하면 다른 곳을 봐야한다는 것을 알게되며, 그렇지 않으면 문제를 해결하는 데 도움이되는 정보를 얻을 수 있습니다. 행운을 빕니다!

+0

죄송합니다. finTime 함수를 업데이트했으며 인수가 있습니다. 나는 그 기능이 작동하기 때문에 뱀 사건이 문제라고 생각하지 않는다. 문제는 함수가 정의되어 있지 않다는 것입니다 (도우미 함수를 호출 할 수 없습니다.)ActionView :: Template : Error : 정의되지 않은 메서드 'finTime'for # <# Class : 0x6db8eb0> : 0x8321928> – ZeroX

+0

아, 죄송합니다. 문제가 작동하는지 아닌지에 따라 메서드에 사용하는 것이 관례라고 말하고 싶습니다. 대답을 업데이트 할 것입니다. – dax

+0

도움을 주셔서 감사합니다. 지금 PagesController.new.finTime을 사용하여 finTime을 호출 할 수 있습니다. – ZeroX

관련 문제