多个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"