我有一个Rails 4.1.0可安装引擎。在引擎的application_helper.rb中:
module MyEngine
module ApplicationHelper
def test123
"test123"
end
end
end
该方法位于虚拟应用的视图general/index.html.erb
视图中:
%<= test123 %>
这很有效。但是,当我更改def test123
返回的字符串并刷新浏览器时,不会显示新字符串。
当然,在虚拟应用程序中重新启动Web服务器会显示新字符串。
所以问题是,如何在不重新启动Web服务器的情况下重新加载引擎的文件?
PS。我最好找一种方法来使用Rails本身,或者解决这个问题的特定gem(但不是像Guard,Spork等通用宝石,尽管如果其他所有方法都失败了,我也会考虑这些。)
PPS。在SO上有类似的问题,但我已经尝试了所有这些问题(即使它们适用于Rails 2.x,3.x),但它们并没有为我工作。
答案 0 :(得分:2)
您应明确要求依赖帮助者:
# engines/my_engine/app/controllers/my_engine/application_controller.rb
require_dependency "my_engine/application_helper" # This is a key point!
module MyEngine
class ApplicationController < ::ApplicationController
helper ApplicationHelper
...
答案 1 :(得分:0)
你可以使用像zeus这样的东西,这有助于观察项目文件的变化,除非在某些情况下,当你更改配置文件时它不起作用,需要手动重新启动。
但总体上在大多数情况下,这比真棒
更有效