【发布时间】:2010-08-05 20:28:40
【问题描述】:
是否有某种方法可以在不完全重新启动服务器的情况下重新加载 Rails 应用程序中的所有 gem?我有一个 Gemfile,它使用 :path 来引用我在同一系统上开发的依赖项,每次保存更改时都必须终止应用程序并再次执行 rails -s,这很烦人。在生产中能够在几秒钟内不杀死服务器的情况下更新 gem 也很好。想法?
【问题讨论】:
-
不,从来没有一个好的答案。
是否有某种方法可以在不完全重新启动服务器的情况下重新加载 Rails 应用程序中的所有 gem?我有一个 Gemfile,它使用 :path 来引用我在同一系统上开发的依赖项,每次保存更改时都必须终止应用程序并再次执行 rails -s,这很烦人。在生产中能够在几秒钟内不杀死服务器的情况下更新 gem 也很好。想法?
【问题讨论】:
最近我发现我想做和你说的一样的事情,所以我可以和我的项目一起开发 gems。
在 Gemfile 中我没有包含 gem 依赖项,而是在 config/environments/development.rb
中添加ActiveSupport::Dependencies.autoload_paths << "/path_to_gem_dir/gem_name/lib"
它需要我做一些额外的工作来使其同步,但在大多数情况下它是可以的。当我完成 gem 的工作后,我可以删除自动加载并在 Gemfile 中使用 gem 依赖项。
请记住,gem 依赖项可以放在 :production, :test 组中,因此在开发中您需要对其进行清理。
例如
group :development do
# gem "wirble" COMMENTED!, so I can autoload files!
end
group :production do
gem "wirble"
end
编码愉快!
【讨论】: