Rails 3,Bundler和RVM在生产中找不到新的宝石

问题描述 投票:1回答:2

我最近为Rails 3应用设置了生产服务器。

在最初的部署中,一切正常。 在随后的部署中,找不到添加到项目中的新gem。 当我分别从新添加的gem中引用类和方法时,出现uninitialized constantundefined method错误。

当我最初进行设置时,我使用的是带有RVM的gemset,但是试图通过删除gemset并仅使用RVM来管理红宝石来简化事情。

当我运行bundle list所有东西都在那里。 所有的宝石都在<app_root>/shared/bundle/ruby/1.9.1/gems/

似乎它是从其他位置加载宝石,例如原始宝石集,但我已将其删除。

其他一些细节,我正在使用Capistrano,当然是独角兽,我的GEM_HOME=/home/deployer/.rvm/gems/ruby-1.9.3-p286

让我知道是否可以提供其他信息。

谢谢。

ruby-on-rails rvm bundler
2个回答
0
投票

如果使用bundle install --deployment则在执行命令时还必须在命令前加上bundle exec ,例如:

bundle exec rake db:migrate

如果您使用bundler/capistrano集成,那么它会在capistano为您完成,但是在控制台中,您需要手动使用bundle exec

RVM可以帮助您避免使用rubygems-bundler gem-但是您更改了gemset,因此不再提供生成的包装器。 您将必须清理<app_root>/shared/bundle/ruby/1.9.1/gems/并再次运行bundle install以重新生成包装程序,以避免再次键入bundle exec


0
投票

我有类似的问题。 事实证明,Capistrano无法正确重启独角兽。 SSH进入服务器,然后停止然后启动独角兽就完成了这项工作。 现在找到Capistrano的恶作剧的修复方法...

© www.soinside.com 2019 - 2024. All rights reserved.