【问题标题】:How to reload all gems in Rails 3?如何在 Rails 3 中重新加载所有 gem?
【发布时间】:2010-08-05 20:28:40
【问题描述】:

是否有某种方法可以在不完全重新启动服务器的情况下重新加载 Rails 应用程序中的所有 gem?我有一个 Gemfile,它使用 :path 来引用我在同一系统上开发的依赖项,每次保存更改时都必须终止应用程序并再次执行 rails -s,这很烦人。在生产中能够在几秒钟内不杀死服务器的情况下更新 gem 也很好。想法?

【问题讨论】:

  • 不,从来没有一个好的答案。

标签: rubygems ruby-on-rails-3


【解决方案1】:

最近我发现我想做和你说的一样的事情,所以我可以和我的项目一起开发 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

编码愉快!

【讨论】:

  • 感谢您的提示!我要补充一点,如果您正在处理的 gem 有额外的依赖项(在 gemspec 中),您应该将它们添加到 gemfile 的开发组中,否则它们将不会被加载。
  • 是的,您只能在此处添加来源。我仍然没有设法找到完全自动化的方法来做到这一点,但现在它似乎是最接近的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多