在rails上访问插件助手方法和lib

时间:2010-02-27 15:56:17

标签: ruby-on-rails ruby-on-rails-plugins communityengine

我目前正在使用社区引擎取消社区,但我需要添加一些模型。

问题是我需要CE使用的帮助器方法,但是当我尝试访问站点的新部分时,我得到一个未定义的方法(如下所示)

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

logged_in?方法在vendor / plugins / 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中声明的所有助手和方法?

2 个答案:

答案 0 :(得分:2)

您可以编辑文件vendor / plugins / community_engine / init.rb并添加此行以加载它:

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

并在您的文件夹vendor / plugins / community_engine / helpers

中移动帮助程序
module MyHelper
  def my_method_here
    ...
  end
end

希望这有帮助!

答案 1 :(得分:0)

我使用的大部分网站都将authenticated_system.rb文件复制到#{RAILS_ROOT}/lib并将其签入。

如果需要,可以覆盖这些方法。