多个Rails应用程序路由在Facebook上的麻烦omniauth登录

问题描述:

我目前正在维护需要将其Passenger Rack Middleware切换到Unicorn的Rails项目。我遇到了Unicorn似乎并不支持子域的问题,所以我有一个像下面这样的解决方法。多个Rails应用程序路由在Facebook上的麻烦omniauth登录

require_relative '../lib/route_scoper' 

MyProject::Application.routes.draw do 
    scope RouteScoper.root do 
    get "pages/welcome" 

    mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 

    devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" } 

    root to: "pages#welcome" 

    resources :categories, only: [:index, :show] 
    resources :counties, only: [:index], defaults: { format: :json } 
    resources :products, only: [:show] do 
     resources :votes, only: [:create] 
    end 

    resources :tickets, only: [:new, :create] 
    end 
end 

我按照这里的文章

Multiple Rails 4 app using nginx + unicorn

一切正常,只是我们的Facebook登录,似乎有一个路由问题提出解决方法。

Started GET "/my_project" 
Processing by Devise::CasSessionsController#service as HTML 
Redirected to http://events.staging.mainsite/users/auth/facebook 
Filter chain halted as :sync_fb_user rendered or redirected 
Completed 302 Found in 49.8ms (ActiveRecord: 0.0ms) 

Rails项目是下一个域名如 http://events.staging.mainsite/my_project

它总是重定向我http://events.staging.mainsite/users/auth/facebook页面,并显示错误消息404未找到。

它用于路由在像下面的网址从旧版本

Redirected to /my_project/users/auth/facebook 

不知道如果我可以覆盖解决这一问题或只需修改route.rb指向正确的登陆路径omniauth路径,谢谢您的帮助。

嗯,我只是想通了这一点,我必须为我的设计添加一个路径 然后将它移到RouteScoper之外。

devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" }, path: "#{RouteScoper.root}/users"