3

所以我有一些代码可以重写回形针文件路径,以便项目中的每个开发人员都可以拥有自己上传的路径,而不会相互干扰,但这在开发中运行

ActiveSupport.on_load(:after_initialize) do

环形。这意味着它仅在初始化时加载。问题是我们正在使用 Active Reload gem(rails 3.1 所以没问题),所以一旦有人编辑了模型,它就会重新加载并使用旧的回形针路径。

我想知道每次重新加载特定模型时如何让这段代码运行?

4

2 回答 2

1

你可以把它包装在一个config.to_prepare 块里面config/application.rb

config.to_prepare do
  # your code
end

这将在开发中的每个请求时重新加载,但在生产中只加载一次。

于 2012-06-28T22:06:49.673 回答
0

所以我在上面尝试了 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

也阻止那里,所以它有点难看,但它的工作原理!

仍然坚持寻找更清洁的解决方案,如果存在的话。

于 2012-06-29T05:27:26.007 回答