ruby-on-rails - Unicorn 和 omniauth-facebook - 未初始化的常量 OmniAuth

标签 ruby-on-rails facebook omniauth unicorn

所以我试图让 omniauth-facebook 在我的生产环境中工作。它使用 POW 在我的机器上本地运行良好。

我的产品环境是带有 nginx/unicorn 的 ubuntu,代码是 Rails 3.2.13,unicorn 的错误是:

E, [2013-05-20T15:51:13.900829 #8737] ERROR -- : uninitialized constant OmniAuth (NameError)
/home/web/apps/****/releases/20130520041958/config/initializers/omniauth.rb:1:in `<top (required)>'

因此,根据我能找到的内容,我尝试将 require 'omniauth/facebook' 添加到我的 production.rb 文件的配置 block 上方,现在我得到:

/home/web/apps/****/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- omniauth/facebook (LoadError)

gemfile 看起来像这样:

source 'https://rubygems.org'

gem 'rails', '3.2.13'
gem 'pg'
gem 'bcrypt-ruby', '3.0.1'
gem 'jquery-rails', '2.2.1'
gem 'omniauth-facebook'
gem 'simple_form'

初始化文件如下所示:

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET']
end

有什么想法吗?我在这里失踪了吗?我遵循了 rails cast 360,正如我所说,在 POW 中本地工作。

最佳答案

大家好,我想通了,

首先我需要:

require 'omniauth-facebook'

不是

require 'omniauth/facebook'

在初始化文件中,当重新启动 unicorn 时执行停止,然后启动命令而不是重新启动命令。

关于ruby-on-rails - Unicorn 和 omniauth-facebook - 未初始化的常量 OmniAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16643832/

相关文章:

ruby-on-rails - 为什么 Rails gem 和插件的名称有时包含作者姓名?

ruby-on-rails - 在 rails 3 中查找没有关联记录的记录

ruby-on-rails - 让 (omniauth-facebook) 和 (omniauth-twitter) 工作

php - 离线访问。验证访问 token ?

ruby-on-rails - 迁移到 OmniAuth 1.0 : undefined method `user_omniauth_authorize_path'

ruby-on-rails - omn​​iauth(自定义策略)/doorkeeper 的法拉第超时错误

ruby-on-rails - 在 Ruby 中,当变量、方法或常量前面带有下划线时,这意味着什么?

ruby-on-rails - 如何在使用设计的应用程序中创建公共(public)页面

javascript - 触发 Facebook 转化像素

javascript - Facebook 喜欢状态