0

我将引擎升级到 Rails 4,但在尝试配置可选的共享帮助程序时遇到问题。帮助Assessable::DisplayHelper程序有两个只呈现 html 的方法。

我所说的可选是

  • 所需的默认配置是帮助程序应可用于 main.app 以在引擎外部使用,但隐藏详细信息。(html 是从引擎生成的哈希生成的,但由主应用程序使用)
  • 一个可选的生成器将帮助程序安装在 helpers/assessable/display_helper 中,应用程序用户可以根据需要对其进行修改。

可选的生成器工作正常,覆盖了引擎中的助手,但我想不出一种方法来使默认模式工作。

我已阅读 rails 4 发行说明中有关帮助程序加载顺序的说明,但不确定我需要更改什么。关于我尝试过的一切

  • 添加helper Assessable::DisplayHelper到应用程序控制器(非首选)
  • 试图包含Assessable::DisplayHelper在一个存根的助手中。
  • 黑暗中的其他一些刺伤

产生和错误:

RuntimeError: Circular dependency detected while autoloading constant Assessable::DisplayHelper
...
from /Users/me/.rvm/gems/ruby-2.0.0-p247@rails4/gems/actionpack-4.0.0/lib/action_controller/railties/helpers.rb:17:in `inherited'
from /Users/me/work/pm/app/controllers/application_controller.rb:1:in `<top (required)>'

我在类和助手中的显示函数之间来回走动。我切换回助手,因为我无法在主应用程序中安装该类。目标是让 `{class.}display_xxx(hash,post) 使用默认或可选配置。

关于这两种方法的任何建议都会有所帮助。

4

1 回答 1

0

我放弃。至少现在知道有人在看 rails4。

我最终使用了一个旧建议并在应用程序帮助程序目录中生成了一个包含的帮助程序 - 而不是一个名称空间目录。不想我想做,但也许以后某个时候我会想出来的。install:helper 方法只是将 helper 替换为包含完整代码的包含。

于 2013-07-12T00:44:34.700 回答