从 Rails 控制台重新加载帮助程序
Posted
技术标签:
【中文标题】从 Rails 控制台重新加载帮助程序【英文标题】:Reload Helper from Rails Console 【发布时间】:2011-11-27 21:16:35 【问题描述】:我在 Rails 3 中从 Rails 控制台调用辅助方法,如下所示:
>> helper.my_method(parameter)
>> #=> some result
但是,如果我更改了辅助方法,当我再次调用相同的方法时,这些更改不会反映出来。我必须 exit
并运行 rails console
才能看到对辅助方法的更改生效。
【问题讨论】:
【参考方案1】:实际上,helper
是一个实例化的对象,用于记忆 ApplicationController 助手,当您调用 reload!
时不会重新加载它,至少在 Rails 4 中是这样。您可以通过在控制台中调用 ApplicationController.helpers.my_method(parameter)
来解决这个问题。编辑帮助程序时仍需要使用reload!
,但它会重新加载,与helper
不同。
【讨论】:
Rails 5.0 的备忘录 has been removed。【参考方案2】:您只需要运行reload!
并且大多数 类将被重新加载,包括您的助手。
【讨论】:
【参考方案3】:在两次遇到此问题并放弃后,我想出了如何在不退出控制台且不通过ApplicationController.helpers.my_method(parameter)
调用它们的情况下重新加载帮助程序。
在调用reload!
后,再次包含您的助手(include MyHelper
),它将包含您最近更改的助手。
【讨论】:
以上是关于从 Rails 控制台重新加载帮助程序的主要内容,如果未能解决你的问题,请参考以下文章
辅助方法不会通过 rails 控制台中的 `reload!` 重新加载
Ruby on Rails - 需要重新加载模型时的不一致性?