从Rails控制台重新加载帮助程序

时间:2011-09-29 17:04:15

标签: ruby-on-rails-3 helper

我正在Rails 3中的Rails控制台中调用辅助方法,如下所示:

>> helper.my_method(parameter)
>> #=> some result

但是,如果我更改辅助方法,则当我再次调用相同的方法时,不会反映更改。我必须exit并运行rails console才能看到辅助方法的更改生效。

3 个答案:

答案 0 :(得分:8)

实际上,helper是一个实例化的对象,它会记住ApplicationController帮助程序,在你调用reload!时不会重新加载,至少在Rails 4中。你可以通过调用{{1来解决这个问题。在控制台中。编辑帮助程序时仍需要使用ApplicationController.helpers.my_method(parameter),但与reload!不同,它会重新加载。

答案 1 :(得分:4)

首先,你错误地标题了你的问题。将来,如果您更清楚自己在寻找什么,那么您更有可能尽快得到答案。

其次,在Ruby中,“函数”被称为“方法”。这不是什么大问题,我们都知道你在谈论什么,但是习惯社区使用的术语是好的。

要回答您的问题,您只需要运行reload!大多数课程都将重新加载,包括您的助手。

答案 2 :(得分:0)

现在两次遇到这个问题并放弃后,我想出了如何在不退出控制台的情况下重新加载帮助程序而不是通过ApplicationController.helpers.my_method(parameter)调用它们。

致电reload!后,再次包含您的助手 include MyHelper),它将包含您最近更改过的帮助。