1

Rails4をdeviseで使用してアプリケーションを作成し、omniauthはFacebookの統合を試みています。Facebookでログインして最初にログインし、クレデンシャルを認証しました.コールバックの後、アプリケーションへのリダイレクトと

ルーティング エラー: 初期化されていない定数 Users::OmniauthCallbacksController

devise fbに関連するコードを表示します

config/initializers/devise.rb

require "omniauth-facebook"
  config.secret_key = 'ef8c3900aebe5cc02feb1dfafb084b2ed35412b43b9424315ac192336f3d16389449739f9a4d451621a912be899af0b9d1ce66fde56487e7edda30ba3997a2cd'
  config.omniauth :facebook, '############', '######################', :strategy_class => OmniAuth::Strategies::Facebook

config/routes.rb devise_for :users, controllers: {omniauth_callbacks: "users/omniauth_callbacks"}

  devise_scope :user do
    get 'sign_in', :to => 'devise/sessions#new'
    get 'sign_out', :to => 'devise/sessions#destroy'
    root to: "devise/sessions#new"
  end

そして私のview/layout/application.html.erb(fbスクリプト用)

<div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        // init the FB JS SDK
        FB.init({
          appId      : '##########',                        // App ID from the app dashboard
          channelUrl : 'http://localhost:3000/channel.html', // Channel file for x-domain comms
          status     : true,                                 // Check Facebook Login status
          xfbml      : true                                  // Look for social plugins on the page
        });


        // Additional initialization code such as adding Event Listeners goes here
      };

      // Load the SDK asynchronously
      (function(d, s, id){
         var js, fjs = d.getElementsByTagName(s)[0];
         if (d.getElementById(id)) {return;}
         js = d.createElement(s); js.id = id;
         js.src = "//connect.facebook.net/en_US/all.js";
         fjs.parentNode.insertBefore(js, fjs);
       }(document, 'script', 'facebook-jssdk'));
    </script>

何度も試しましたが、同じエラーが表示されます。この問題の貴重な解決策を教えてください。

前もって感謝します。

4

0 に答える 0