我在$template
中定义了一个application_controller.rb
变量,其中包含一些通过管理员更改的网站模板代码
问题是当我保存或更新它时,它不会影响网站直到服务器重启,这在生产中真的很不舒服
$template = Template.first
.....
$template.header.html_safe
在日志中,我可以使用那个$ template变量make和SQL,并且最开始(在Puma启动之前),这可能是全局变量应该如何工作的方式。
P.S。我使用active_admin并从那里更新
答案 0 :(得分:1)
这是因为你获取了你的Template
并且它在内存中,因此在每个save
之后(:create,:update,create!,:update!,:save,:save!)你必须重新加载你的变量
$template.reload
这将更新您的变量
或者您只需将辅助方法添加到ApplicationController
def first_template
Template.first
end
helper_method :first_template
每次都会检索更新的数据
您可以在视图中使用它
first_template.header.html_safe