为什么我的Rails可装载引擎不能正确装载辅助方法?[英] Why is my Rails mountable engine not loading helper methods correctly?

本文是小编为大家收集整理的关于为什么我的Rails可装载引擎不能正确装载辅助方法?的处理方法,想解了为什么我的Rails可装载引擎不能正确装载辅助方法?的问题怎么解决?为什么我的Rails可装载引擎不能正确装载辅助方法?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我已经构建了一个作为引擎安装的 rails gem.

引擎的作用域是它自己的命名空间.

在引擎中,有一个 MyEngine::ApplicationHelper 模块,它添加了一堆视图辅助方法.

在我的应用程序布局中,我参考了其中一些方法.

当我第一次在开发模式下加载任何页面时,我得到一个 NoMethodError,抱怨该方法(在 gem 的 ApplicationHelper 中定义)不存在.

在我的应用中编辑 ApplicationController 后,问题就会自行解决.

有些事情告诉我这是由于 Rails 的自动加载最近发生的变化;我正在使用 Rails 3.2.2

我终其一生都无法弄清楚为什么它不能正常工作:/

推荐答案

我认为 Rails 指南有答案 这里.

要将引擎中的特定帮助程序包含在您的应用中:

class ApplicationController < ActionController::Base
  helper MyEngine::ApplicationHelper
end

要将引擎中的所有助手包含在您的应用中:

class ApplicationController < ActionController::Base
  helper MyEngine::Engine.helpers
end

本文地址:https://www.itbaoku.cn/post/786411.html