1

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

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

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

登录?方法位于 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 中声明的所有帮助程序和方法?

4

2 回答 2

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

希望这有帮助!

于 2011-11-04T15:25:19.593 回答
0

我使用过的大多数网站都将authenticated_system.rb文件物理复制到#{RAILS_ROOT}/lib并签入。

这样,您可以根据需要覆盖这些方法。

于 2010-02-27T22:18:27.053 回答