rails 4引擎可选共享助手

时间:2013-07-11 09:44:09

标签: ruby-on-rails-4

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

我的意思是

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

可选的发电机工作正常,超过发动机中的助手,但我无法找到使默认模式工作的方法。

我已经在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)使用默认配置或可选配置。

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

1 个答案:

答案 0 :(得分:0)

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

我最终使用了一个旧建议并在应用程序帮助程序目录中生成了一个包含的帮助程序 - 而不是名称间隔目录。不想我想做,但也许有一段时间后我会搞清楚。 install:helper方法只是用包含完整代码的include替换帮助器。