如何在 Rails 3 中重新加载所有 gem? [英] How to reload all gems in Rails 3?
问题描述
是否有某种方法可以在不完全重新启动服务器的情况下重新加载 Rails 应用程序中的所有 gem?我有一个 Gemfile,它使用 :path
来引用我在同一系统上开发的依赖项,不得不杀死应用程序并执行 rails -s每次我保存更改时再次代码>.在生产中能够在不杀死服务器几秒钟的情况下更新 gem 也很好.想法?
Is there some way to reload all gems in a Rails app without completely restarting the server? I've got a Gemfile that uses :path
to reference a dependency that I'm developing on the same system, and it's annoying to have to kill the app and do rails -s
again every time I save a change. It'd also be nice in production to be able to update a gem without killing the server for a few seconds. Thoughts?
推荐答案
最近我发现我也想做和你说的一样的,所以我可以和我的项目一起开发gem.
Recently I found that I would like to do the same as you say, so I can develop gems along with my projects.
在 Gemfile 中我没有包含 gem 依赖项,而是在 config/environments/development.rb 中添加了
In a Gemfile I did not include gem dependency, but instead I added in config/environments/development.rb
ActiveSupport::Dependencies.autoload_paths << "/path_to_gem_dir/gem_name/lib"
它需要我做一些额外的工作来使其同步,但在大多数情况下它是可以的.当我完成 gem 的工作后,我可以删除自动加载并在 Gemfile 中使用 gem 依赖项.
It requires me to do some additional work with making it sync, but in most common cases it is ok. When I finish working on a gem I can remove autoload and use gem dependency in Gemfile.
请记住,gem 依赖项可以放在 :production, :test 组中,因此在开发中您可以对其进行清理.
Remember that gem dependency can be placed in :production, :test groups, so in development you have it cleaned.
例如
group :development do
# gem "wirble" COMMENTED!, so I can autoload files!
end
group :production do
gem "wirble"
end
编码愉快!
这篇关于如何在 Rails 3 中重新加载所有 gem?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!