1

Facebook ログインを統合する方法については、Rails Casts Episode #360をフォローしました。

[Facebook でサインイン] をクリックすると、次のエラーが表示されます。

Routing Error

No route matches [GET] "/auth/facebook"

ここに私のルートファイルがあります:

Frostfiress::Application.routes.draw do
  ActiveAdmin.routes(self)

  devise_for :admin_users, ActiveAdmin::Devise.config

  get "profiles/show"
  #get 'questions/:tag', to: 'questions#index', as: :tag
  #get 'places/:tag', to: 'places#index', as: :tag
  match 'auth/:provider/callback', to: 'sessions#create'
  match 'auth/failure', to: redirect('/')
  match 'signout', to: 'sessions#destroy', as: 'signout'

  resources :places


  devise_for :users

  devise_scope :user do 
      get 'register', to: 'devise/registrations#new', as: :register
      get 'login', to: 'devise/sessions#new', as: :login
      get 'logout', to: 'devise/sessions#destroy', as: :logout
      get 'password/change', to: 'devise/passwords#edit', as: :password
  end

  resources :answers

  resources :questions


  root :to => "questions#index"

  get '/:username', to: 'profiles#show'

RailsCast で変更する必要があった他のすべてのファイルは、チュートリアルとまったく同じです。

AppId と Secret は機能していましたが、ルーティング エラーが発生します。

助言がありますか?

ありがとう

これは rake ルートの結果です:

profiles_show GET        /profiles/show(.:format)                  profiles#show
                                          /auth/:provider/callback(.:format)        sessions#create
                  auth_failure            /auth/failure(.:format)                   :controller#:action
                       signout            /signout(.:format)                        sessions#destroy
                        places GET        /places(.:format)                         places#index
                               POST       /places(.:format)                         places#create
                     new_place GET        /places/new(.:format)                     places#new
                    edit_place GET        /places/:id/edit(.:format)                places#edit
                         place GET        /places/:id(.:format)                     places#show
                               PUT        /places/:id(.:format)                     places#update
                               DELETE     /places/:id(.:format)                     places#destroy
              new_user_session GET        /users/sign_in(.:format)                  devise/sessions#new
                  user_session POST       /users/sign_in(.:format)                  devise/sessions#create
          destroy_user_session DELETE     /users/sign_out(.:format)                 devise/sessions#destroy
       user_omniauth_authorize            /users/auth/:provider(.:format)           devise/omniauth_callbacks#passthru {:provider=>/(?!)/}
        user_omniauth_callback            /users/auth/:action/callback(.:format)    devise/omniauth_callbacks#(?-mix:(?!))
                 user_password POST       /users/password(.:format)                 devise/passwords#create
             new_user_password GET        /users/password/new(.:format)             devise/passwords#new
            edit_user_password GET        /users/password/edit(.:format)            devise/passwords#edit
                               PUT        /users/password(.:format)                 devise/passwords#update
      cancel_user_registration GET        /users/cancel(.:format)                   devise/registrations#cancel
             user_registration POST       /users(.:format)                          devise/registrations#create
         new_user_registration GET        /users/sign_up(.:format)                  devise/registrations#new
        edit_user_registration GET        /users/edit(.:format)                     devise/registrations#edit
                               PUT        /users(.:format)                          devise/registrations#update
                               DELETE     /users(.:format)                          devise/registrations#destroy
                      register GET        /register(.:format)                       devise/registrations#new
                         login GET        /login(.:format)                          devise/sessions#new
                        logout GET        /logout(.:format)                         devise/sessions#destroy
                      password GET        /password/change(.:format)                devise/passwords#edit
                       answers GET        /answers(.:format)                        answers#index
                               POST       /answers(.:format)                        answers#create
                    new_answer GET        /answers/new(.:format)                    answers#new
                   edit_answer GET        /answers/:id/edit(.:format)               answers#edit
                        answer GET        /answers/:id(.:format)                    answers#show
                               PUT        /answers/:id(.:format)                    answers#update
                               DELETE     /answers/:id(.:format)                    answers#destroy
                     questions GET        /questions(.:format)                      questions#index
                               POST       /questions(.:format)                      questions#create
                  new_question GET        /questions/new(.:format)                  questions#new
                 edit_question GET        /questions/:id/edit(.:format)             questions#edit
                      question GET        /questions/:id(.:format)                  questions#show
                               PUT        /questions/:id(.:format)                  questions#update
                               DELETE     /questions/:id(.:format)                  questions#destroy
                          root            /                                         questions#index
                               GET        /:username(.:format)                      profiles#show
4

1 に答える 1

-1

ルート /auth/facebook は自動的に生成されません。もしそこにあったとしても、コントローラー関数にマップしない限り、実際には何もしません。ただし、これを行う必要はありません。

実際に facebook にリクエストを送信していることを確認してください。送信していない場合、omniauth は何もできません。

http://developers.facebook.com/docs/howtos/login/getting-started/

成功した場合は /auth/facebook/callback にリダイレクトし、失敗した場合は /auth/failure にリダイレクトして、リクエストに対する facebook の応答を処理する必要があります。

于 2013-03-06T00:55:13.843 に答える