2010-02-27 75 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