【发布时间】:2013-07-11 09:44:08
【问题描述】:
我将引擎升级到 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)>'
我在类和助手中的 Display 函数之间来回切换。我切换回助手,因为我无法在主应用程序中安装类。目标是让 `{class.}display_xxx(hash,post) 使用默认或可选配置。
对这两种方法的任何建议都会有所帮助。
【问题讨论】:
-
一个问题在我的案例中解决了这类问题。你可以试一试吗?请将此添加到您的 development.rb:config.middleware.delete Rack::Lock stackoverflow.com/a/18857992/751716
标签: ruby-on-rails-4