0

アプリで omniauth-facebook を使用していますが、よくわかりませんが、リダイレクト先のメソッドに到達しないため、ルートに問題があると思います。

MyApp::Application.routes.draw do
match '/auth/facebook/callback' => 'user#create'
resources :users

        require 'omniauth'
    class UserController < ApplicationController

      def create
        if User.exists?(:condition => ["email=?",auth_hash["info"]["email"]])
          self.current_user = User.find(:all,:condition => ["email=?",auth_hash["info"]["email"]])
        else
          self.current_user = User.new(:email => auth_hash["info"]["email"])
        redirect_to 'deals#generate_ticket'
      end
        end

def auth_hash
    request.env['omniauth.auth']
  end 


Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'XXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXX',
      :scope => 'email'
    end

ルートに何かが欠けているか、宝石を正しくインストールしていない可能性があります。私はあらゆる助けに心から感謝します.Thanks!

4

1 に答える 1

1

コードは良さそうですが、次のようにgemfileに追加しましたか?:

gem 'omniauth'
gem 'omniauth-facebook' 

また、次を使用しています:require'omniauth'、多分それは'omniauth-facebook'である必要があります。ただし、requireを使用する代わりに、gemfileにgemを追加することをお勧めします。

よろしく..頑張ってください。

于 2012-10-02T16:14:37.340 に答える