2010-02-27 38 views
1

我目前正在使用社區引擎來發布社區,但我需要添加一些模型。在軌上訪問插件幫助程序方法和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 

我怎樣才能讓我的Rails應用程序加載的所有助手和方法在lib中聲明我的插件?

+0

你在'ApplicationController'中包含了AuthenticatedSystem嗎? – 2010-02-27 19:33:17

+0

我可以添加AuthenticadedSystem,因爲這是一個模塊,但我不能包含/需要助手= S任何想法? – Hock 2010-02-27 20:04:28

回答

2

您可以編輯文件的供應商/插件/ community_engine/init.rb並添加以下行來加載它:

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

,使你們在文件夾供應商/插件/ community_engine /助手幫手

module MyHelper 
    def my_method_here 
    ... 
    end 
end 

希望得到這個幫助!

0

,我曾經使用過大多數的網站在物理上authenticated_system.rb文件複製到#{RAILS_ROOT}/lib,並檢查它。

這樣,如果你需要,你可以覆蓋的方法。

+0

那幫手呢?我可以包含這個模塊,但仍然有助手的問題= S – Hock 2010-02-28 00:30:06

+0

我上面提到的庫是包含所有helper方法的庫。如果你將它複製到lib目錄中,那麼在控制器中使用'include AuthenticatedSystem' - 它會找到幫助器方法。 – 2010-02-28 16:51:51

+0

我已經複製了RAILS_ROOT/lib目錄中的模塊,但助手(vendor/plugins/community_engine/app/helpers /)仍然給我帶來問題= SI不能在我的自定義模型中使用這些方法= S – Hock 2010-03-01 12:30:49