2012-09-03 4 views
0

나는Rails2 - 초기화되지 않은 상수 내 :: 사용자 :: ApplicationHelper

user.rb

class My::User < My::AbstractModel 
    delegate :message_t, :to => ApplicationHelper 

    #omited 
end 

그래서 나는이 모델에서 호출 할 필요가 다음 줄을 포함하는 플러그인에 포함 된 클래스를 가지고있는 * 'message_t'* application_helper.rb에 정의 된 기능,

그러나 젠킨스는 그래서 사용자 모델은 입학 원서 전에로드 가정 오류 'ApplicationHelper 초기화되지 않은 상수에게 내 :: 사용자 ::'가 제공하는 테스트 실패 on_helper.rb. 어떻게 해결할 수 있습니까? * 'message_t'*를 호출하는 다른 방법이 있습니까? 아니면 파일로드 순서를 변경할 수 있습니까?

답변

1

모델 레이어에서 레일 도우미에 액세스 할 수 없습니다. 헬퍼는 프리젠 테이션을 돕기 위해 설계되었으며 뷰 (때로는 컨트롤러) 레이어에서 사용됩니다.

또한 delegate은 메시지를 직접 연결된 모델 (임의의 클래스가 아닌)로 전송하는 데 사용됩니다.

message_t 메서드를 ApplicationHelper에서 모델에 필요한 라이브러리 파일로 옮기는 것이 좋습니다. 그런 다음 delegate 대신 프록시 개체를 사용하여 호출하십시오. 또는이 목적을 위해 프록시 개체를 연결하고 해당 소리가 마음에 들면 delegate을 사용할 수 있습니다.

+0

응용 프로그램이 실제로 정상적으로 작동하고 있습니다. 젠킨스 만이 문제가있는 것 같습니다. 나는 당신의 첫 번째 충고를 해보고, message_t 밖으로 나가서 그것이 어떻게 진행되는지 볼 것입니다. – oldergod

0

모델에 require 'application_helper' 수 있습니다. 모델 앞에 application_helper가로드되는지 확인합니다.

+0

이미 시도했지만 Jenkins는 여전히 실패했습니다. – oldergod

관련 문제