轨道上的红宝石 - 生产找不到某些宝石方法



我已经在 rails 3.2.11 中添加了 gem 简单导航 3.9.0 到我的 gemfile,它在开发中运行良好。但是,当我部署到我的生产服务器并尝试使用该方法打开页面时,出现以下错误:

undefined method `render_navigation'

不过,我不相信它特定于那颗宝石,因为我之前在使用 uuid 宝石时遇到了同样的问题。

使用 $LOADED_FEATURES,我找到"simple_navigation",所以它似乎已加载。

有关生产服务器的信息

nginx 1.2.6
Unicorn 4.5.0
Rubygems 1.8.23
Ubuntu 12.04 LTS
rbenv 0.4.0-9-g045f6c1

编辑

其他 gem 工作,服务器运行良好,除了上述问题。

确保您的 gem 未在 Gemfile 的 development 组中声明

development组中的宝石不会加载到 production 中。

group :development do
  gem "simple-navigation"
end

此外,如果您有<APP_HOME>/.bundle/config文件,请确保它没有BUNDLE_WITHOUT选项。

宝石文件

group :ui do
  gem "simple-navigation"
end

.bundle/config

---
BUNDLE_WITHOUT: ui

在上面的示例中,将不会加载 gem 组ui

话虽如此,我对 Rails 的接触非常非常有限,当 Gemfile.lock 没有提交到存储库中时,我看到了类似的行为。结果,当项目被推向生产环境时,依赖关系解决出现了一些问题。

你试过RAILS_ENV=production bundle install吗?

虽然从技术上讲不是答案,但我决定切换到Linode作为我的主机。这涉及完全重新安装我的服务器设置,它现在可以工作了。这次我执行了与上次完全相同的步骤安装服务器,所以我仍然不确定出了什么问题,或者它是否很容易修复。由于我不再有可用的旧服务器,因此从现在开始无法确认提出的任何解决方案。

我将把这个答案标记为解决方案,除非在接下来的 48 小时内有任何异议。

相关内容

  • 没有找到相关文章

最新更新