1

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

undefined method `render_navigation'

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

使用 $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

编辑

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

4

4 回答 4

1

确保您的 gem 没有development在 Gemfile 的组内声明

development组中的宝石未加载到production.

group :development do
  gem "simple-navigation"
end

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

宝石文件

group :ui do
  gem "simple-navigation"
end

.bundle/配置

---
BUNDLE_WITHOUT: ui

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

于 2013-01-26T00:31:50.933 回答
0

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

于 2013-01-24T17:43:22.080 回答
0

你试过RAILS_ENV=production bundle install吗?

于 2013-01-31T08:52:12.910 回答
0

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

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

于 2013-02-04T07:09:32.820 回答