0

ローカルで実行しているアプリがあり、正しく動作します。FacebookでOAuth用のデバイスを設定しました。

アプリをHerokuにプッシュすると、次の例外が発生します。

/app/app/controllers/users_controller.rb:2:in `<class:SessionsController>':
undefined method `devise_for'
for Users::SessionsController:Class (NoMethodError)

しかし、ローカルではこのエラーは発生しません。

Herokuにプッシュした後に実行した手順は次のとおりです。

  • heroku run rake db:migrate
  • heroku restartおよびを使用してherokuを再起動しましたheroku ps:restart

したがって、問題は、サーバーを再起動する必要があるということではありません。

これが私のgemfileです:

source 'https://rubygems.org'

gem 'rails', '3.2.12'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'pg'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'
gem 'devise'
gem 'omniauth'
gem 'omniauth-facebook'

何が問題になる可能性がありますか?

編集

エラーがポイントする最初の行は次のとおりです。

# app/controllers/users/users_controller
class Users::SessionsController < Devise::SessionsController
    devise_for :users, :controllers => { :sessions => "users/sessions" }
end
4

1 に答える 1

1

これをローカルで実行してみましたか?devise_forコントローラではなくルート上にある必要があります。https://github.com/plataformatec/deviseを参照して、設定が正しく行われていることを確認してください。特別なことをしているのでない限り、コントローラーをオーバーライドする必要はありません。もし私があなたのところにいるなら、私は最初に最小限の変更を試み、そしてあなたが望むようにそれを徐々に変更しようとします。

于 2013-03-12T14:20:07.773 に答える