2010-02-27 2 views
1

현재 커뮤니티 엔진을 사용하여 커뮤니티를 delevoping하고 있지만 일부 모델을 추가해야합니다.레일에 대한 플러그인 도우미 메소드 및 lib에 액세스

문제는 내가 CE에서 사용하는 헬퍼 방법이 필요하지만이 사이트의 새로운 섹션을 액세스 할 때, 나는 (아래처럼)

undefined method `logged_in?' for #<ActionView::Base:0x1048f3748> 

logged_in을 정의되지 않은 메서드를 얻을 수 있다는 것입니다 ? 방법은 공급 업체에있다/플러그인/community_engine/lib 디렉토리/authenticated_system.rb

이 방법은이 같은 도우미 방법으로 정의됩니다

# this is at vendor/plugins/community_engine/lib/authenticated_system.rb 
def self.included(base) 
    base.send :helper_method, :current_user, :current_user_session, :logged_in?, :admin?, :moderator? 
end 

가 어떻게 내 레일 응용 프로그램의 부하 모든 헬퍼를 만들 수 있습니다 및 방법 내 플러그인 lib 디렉토리에 선언? 내가 함께 작업 한

+0

당신은'ApplicationController'에'AuthenticatedSystem'을 포함 시켰습니까? –

+0

모듈이기 때문에 AuthenticadedSystem을 추가 할 수는 있지만 도우미가 필요/포함 할 수는 없습니다. 어떤 아이디어입니까? – Hock

답변

2

당신은 당신의 파일 공급 업체/플러그인/community_engine/init.rb을 편집하고로드하려면이 줄을 추가 할 수 있습니다

ActionView::Base.send(:include, MyHelper) 

을 당신이 당신의 폴더 공급 업체/플러그인/community_engine/헬퍼에 도우미로 이동

module MyHelper 
    def my_method_here 
    ... 
    end 
end 

희망이 도움이됩니다.

0

대부분의 사이트는 물리적으로 #{RAILS_ROOT}/libauthenticated_system.rb 파일을 복사하고 그것을 확인합니다.

필요하면 당신이 메소드를 오버라이드 (override) 할 수 있습니다 그 방법을.

+0

그리고 도우미는 어떻습니까? 모듈을 포함 할 수 있지만 도우미와 문제가 계속되는 경우 = S – Hock

+0

위에서 언급 한 라이브러리는 그 안에 모든 도우미 메서드가 포함 된 라이브러리입니다. lib 디렉토리에 복사 한 다음 컨트롤러에'include AuthenticatedSystem'을 사용하면 도우미 메소드를 찾을 수 있습니다. –

+0

모듈을 RAILS_ROOT/lib 디렉토리에 복사했으나 도우미 (vendor/plugins/community_engine/app/helpers /)가 여전히 내게 문제가 있음 = SI는 내 사용자 정의 모델에서 해당 메소드를 사용할 수 없음 = S – Hock

관련 문제