如何在 Rails 3 中重新加载所有 gem? [英] How to reload all gems in Rails 3?

查看:27
本文介绍了如何在 Rails 3 中重新加载所有 gem?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有某种方法可以在不完全重新启动服务器的情况下重新加载 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆