所以我有一些代码可以重写回形针文件路径,以便项目中的每个开发人员都可以拥有自己上传的路径,而不会相互干扰,但这在开发中运行
ActiveSupport.on_load(:after_initialize) do
环形。这意味着它仅在初始化时加载。问题是我们正在使用 Active Reload gem(rails 3.1 所以没问题),所以一旦有人编辑了模型,它就会重新加载并使用旧的回形针路径。
我想知道每次重新加载特定模型时如何让这段代码运行?
所以我有一些代码可以重写回形针文件路径,以便项目中的每个开发人员都可以拥有自己上传的路径,而不会相互干扰,但这在开发中运行
ActiveSupport.on_load(:after_initialize) do
环形。这意味着它仅在初始化时加载。问题是我们正在使用 Active Reload gem(rails 3.1 所以没问题),所以一旦有人编辑了模型,它就会重新加载并使用旧的回形针路径。
我想知道每次重新加载特定模型时如何让这段代码运行?
你可以把它包装在一个config.to_prepare
块里面config/application.rb
:
config.to_prepare do
# your code
end
这将在开发中的每个请求时重新加载,但在生产中只加载一次。
所以我在上面尝试了 Ryan 的建议,但就像我想的那样,它会在每次页面加载时运行我的代码......没有 Bueno。
我最终做的是使用 Active Reloader 提供给您的这段代码,但我怀疑它是否适用于 Rails 3.2
ActiveSupport::Notifications.subscribe("active_support.dependencies.clear") do |*args|
my_code_block
end
而且它很有效,我仍然必须保留原件
ActiveSupport.on_load(:after_initialize) do
也阻止那里,所以它有点难看,但它的工作原理!
仍然坚持寻找更清洁的解决方案,如果存在的话。