![]() |
1
10
您可能还需要查看引擎子类中的初始值设定项,因此不必在控制器类中包含视图帮助器。这将使您能够控制这些模块的加载顺序。 以下是我一直在使用的:
此外,操作控制器扩展的另一个选项是使用混合模块。这将允许您使用前过滤器、后过滤器等。
还有一件事…如果在gem的顶层创建默认的rails目录,就不必担心需要帮助器或控制器。您的引擎子类可以访问它们。所以我在这里添加了我的应用程序控制器和应用程序助手扩展: /myengine/app/helpers/myengine_application_helper_extension.rb /myengine/app/controllers/my_engine_action_controller_extension.rb 我喜欢这个设置,因为它看起来类似于Rails应用程序中的应用程序控制器和应用程序助手。同样,这只是个人偏好,但是我尝试将任何与Rails直接相关的东西,比如控制器、助手和模型放在/my_engine/app中,以及与插件相关的任何东西放在/my_engine/lib中。 有关初始值设定项的详细信息,请参阅Jose Valim的本教程: https://gist.github.com/e139fa787aa882c0aa9c (现在不推荐使用引擎名,但大多数文档似乎是最新的) |
![]() |
2
3
所以,我终于找到了解决方案,我希望它能帮助其他人。
您需要在lib目录中创建一个文件,因为您实际上要扩展这个类。我做的
然后,在你的
里面
如果需要视图帮助器,请在
|