Разработать проблему интеграции omniauth

Я смотрел railscast http://railscasts.com/episodes/236-omniauth-part-2

И попробовал реализовать код, в среде разработки все работало хорошо. когда я выполняю с использованием rails s -e production, я получаю сообщение об ошибке ниже

omniauth_callbacks_controller.rb:1: неинициализированная константа Devise::OmniauthCallbacksController (NameError)

Фрагмент кода, вызвавший ошибку, находится здесь

класс Users::OmniauthCallbacksController ‹ Devise::OmniauthCallbacksController

Мой гемфайл


gem 'aws-s3'
gem 'paperclip'
gem 'rails', '3.0.0'
gem 'pg'
gem 'gravatar_image_tag', '0.1.0'
gem 'will_paginate', '3.0.pre2'
gem 'devise'
gem 'omniauth'
gem 'nifty-generators'

Мой файл Gemfile.lock (только связанные)


    devise (1.1.5)
      bcrypt-ruby (~> 2.1.2)
      warden (~> 1.0.2)

    nokogiri (1.4.4)
    oa-basic (0.1.6)
      multi_json (~> 0.0.2)
      nokogiri (~> 1.4.2)
      oa-core (= 0.1.6)
      rest-client (~> 1.6.0)
    oa-core (0.1.6)
      rack (~> 1.1)
    oa-enterprise (0.1.6)
      net-ldap (~> 0.1.1)
      nokogiri (~> 1.4.2)
      oa-core (= 0.1.6)
      pyu-ruby-sasl (~> 0.0.3.1)
      rubyntlm (~> 0.1.1)
    oa-oauth (0.1.6)
      multi_json (~> 0.0.2)
      nokogiri (~> 1.4.2)
      oa-core (= 0.1.6)
      oauth (~> 0.4.0)
      oauth2 (~> 0.1.0)
    oa-openid (0.1.6)
      oa-core (= 0.1.6)
      rack-openid (~> 1.2.0)
      ruby-openid-apps-discovery
    oauth (0.4.4)
    oauth2 (0.1.0)
      faraday (~> 0.5.0)
      multi_json (~> 0.0.4)
    omniauth (0.1.6)
      oa-basic (= 0.1.6)
      oa-core (= 0.1.6)
      oa-enterprise (= 0.1.6)
      oa-oauth (= 0.1.6)
      oa-openid (= 0.1.6)

Мой файл development.rb


SampleApp::Application.configure do
  config.cache_classes = false
  config.whiny_nils = true
  config.consider_all_requests_local       = true
  config.action_view.debug_rjs             = true
  config.action_controller.perform_caching = false
  config.action_mailer.raise_delivery_errors = false
  config.active_support.deprecation = :log
  config.action_dispatch.best_standards_support = :builtin
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
end

Мой файл production.rb


SampleApp::Application.configure do
  config.cache_classes = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.action_dispatch.x_sendfile_header = "X-Sendfile"
  config.serve_static_assets = false
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
end

Кто-нибудь может помочь?


person Yekmer Simsek    schedule 27.11.2010    source источник


Ответы (2)


В версии 1.2 поддерживается прямая интеграция с OmniAuth.

Проверьте разработать вики для OmniAuth.

person ecleel    schedule 20.12.2010

Как выглядит ваш Gemfile? Вы случайно не вставили утверждение gem 'omniauth' в группу :development?

person Keith Gaddis    schedule 28.11.2010
comment
можете ли вы отредактировать свой вопрос и включить используемые вами файлы development.rb и production.rb? - person Keith Gaddis; 29.11.2010
comment
Привет, когда я изменил версию разработки на 1.1.4 и изменил классы кеша на false в production.rb, поскольку config.cache_classes = false, это сработало, но это не очень хорошее решение, поскольку оно снижает производительность на сервере. У вас есть лучшее решение. - person Yekmer Simsek; 29.11.2010
comment
cache_classes не имеет смысла. Что произойдет, если вы просто используете версию 1.1.4 devise? - person Keith Gaddis; 29.11.2010
comment
Я думаю, маршрутизация некоторых файлов изменилась в версии 1.1.5, но то, что исправило ошибку, было config.cache_classes, я знаю, это странно. У меня есть аналогичный проект, так как эта комбинация и файл production.rb работали хорошо. Я знаю, что это странно, и я делаю что-то не так. - person Yekmer Simsek; 29.11.2010