Неопределенный метод "omniauth" для Devise: Module (devise, omniauth, heroku, rails 3.0.3) - PullRequest
1 голос
/ 12 октября 2011

У меня есть приложение, которое использует Amazon Product Advertising API локально, без проблем. Чтобы перенести его в Heroku, мне нужно изменить версию гема aws, который я использую, чтобы он работал с Heroku ("treyconnell-ruby-aaws" v0.8.3), и эта версия ограничивает меня Rails 3.0.3 и разработать v1.1.8 драгоценные камни.

Когда я понижаю рейтинг драгоценных камней и «обновления связки», что-то ломается даже на местном уровне, догадываясь о всеведении и изобретении, и начинают сражаться. Сервер не запускается со следующим журналом ошибок.

Я пробовал много разных конфигураций загрузки omniauth gem, oa-auth, требующих omniauth / oauth и т. Д., С той же ошибкой. В чем может быть проблема здесь?

PS. Я должен использовать этот драгоценный камень AWS сейчас.

/Users/eerdogan/Sites/myApp/config/initializers/devise.rb:17: undefined method `omniauth' for Devise:Module (NoMethodError)
    from /Library/Ruby/Gems/1.8/gems/devise-1.1.8/lib/devise.rb:183:in `setup'
    from /Users/eerdogan/Sites/myApp/config/initializers/devise.rb:3
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/engine.rb:201
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/engine.rb:200:in `each'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/engine.rb:200
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `instance_exec'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `run'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:50:in `run_initializers'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `each'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `run_initializers'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/application.rb:134:in `initialize!'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/application.rb:77:in `send'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
    from /Users/eerdogan/Sites/myApp/config/environment.rb:5
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
    from /Users/eerdogan/Sites/myApp/config.ru:3
    from /Library/Ruby/Gems/1.8/gems/rack-1.2.4/lib/rack/builder.rb:46:in `instance_eval'
    from /Library/Ruby/Gems/1.8/gems/rack-1.2.4/lib/rack/builder.rb:46:in `initialize'
    from /Users/eerdogan/Sites/myApp/config.ru:1:in `new'
    from /Users/eerdogan/Sites/myApp/config.ru:1

Редактировать: вот файл devise.rb:

# Use this hook to configure devise mailer, warden hooks and so forth. The first
# four configuration values can also be set straight in your models.
Devise.setup do |config|
  config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"
  require 'devise/orm/active_record'
  config.omniauth :facebook, "1*************", "3******************************"
  config.case_insensitive_keys = [ :email ]
  config.stretches = 10
  config.use_salt_as_remember_token = true
  config.reset_password_within = 2.hours
end

1 Ответ

2 голосов
/ 12 октября 2011

Я думаю, что строка config.facebook в devise.rb вызывает у вас горе.

Я посмотрел на свой devise.rb, и у меня также есть другой файл с именем omniauth.rb.

(1) У моего devise.rb нет строки config.facebook. Попробуйте удалить это и посмотреть, работает ли оно.

(2) У меня есть файл с именем omniauth.rb, расположенный в том же каталоге, что и devise.rb. Я вставляю это ниже:

require 'openid/store/filesystem'

Rails.application.config.middleware.use OmniAuth::Builder do

  case Rails.env
  when "development"
    provider :facebook, 'XXX', 'XXXX' , {:scope => 'manage_pages,publish_stream,offline_access,email'}

  when "production"
    provider :facebook, 'XXX', 'XXXX', {:scope => 'manage_pages,publish_stream,offline_access,email', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}  
    end
end

Посмотрите, сработает ли это для вас. :)

...