我将引擎升级到 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) 使用默认或可选配置。
关于这两种方法的任何建议都会有所帮助。