Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 访问rails上的插件助手方法和库_Ruby On Rails_Ruby On Rails Plugins_Communityengine - Fatal编程技术网

Ruby on rails 访问rails上的插件助手方法和库

Ruby on rails 访问rails上的插件助手方法和库,ruby-on-rails,ruby-on-rails-plugins,communityengine,Ruby On Rails,Ruby On Rails Plugins,Communityengine,我目前正在使用社区引擎删除一个社区,但我需要添加一些模型 问题是我需要CE使用的helpers方法,但是当我尝试访问站点的新部分时,我得到了一个未定义的方法(如下所示) 如何让我的rails应用程序加载插件库中声明的所有帮助程序和方法?我使用过的大多数站点都将authenticated\u system.rb文件复制到{rails\u ROOT}/lib中并将其签入 这样,如果需要,您可以重写这些方法。您可以编辑文件vendor/plugins/community\u engine/init.r

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

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


如何让我的rails应用程序加载插件库中声明的所有帮助程序和方法?

我使用过的大多数站点都将
authenticated\u system.rb
文件复制到
{rails\u ROOT}/lib
中并将其签入


这样,如果需要,您可以重写这些方法。

您可以编辑文件vendor/plugins/community\u engine/init.rb并添加以下行以加载它:

ActionView::Base.send(:include, MyHelper)
并将助手移动到文件夹vendor/plugins/community\u engine/helpers中

module MyHelper
  def my_method_here
    ...
  end
end

希望这有帮助

您的
应用程序控制器中是否包含AuthenticatedSystem
?我可以添加AuthenticatedSystem,因为这是一个模块,但我不能包含/要求helpers=s任何想法?那么helpers呢?我可以包含模块,但是helpers=s仍然有问题我上面提到的库就是包含所有helper方法的库。如果将其复制到lib目录中,则在控制器中使用
include AuthenticatedSystem
,它将找到帮助程序方法。我已将模块复制到RAILS\u ROOT/lib目录中,但没有复制帮助程序(vendor/plugins/community\u engine/app/helpers/)我不能在我的自定义模型中使用这些方法,为什么你的模型中需要它们?类似“登录”的助手是控制器/视图级访问控制方法。
ActionView::Base.send(:include, MyHelper)
module MyHelper
  def my_method_here
    ...
  end
end