在生产中找不到Admin命名空间路由

时间:2014-10-12 17:35:13

标签: ruby-on-rails heroku devise routes

我的routes.rb中有以下内容:

devise_for :admins, path: ENV['ADMIN_PATH'] || '/', controllers: { registrations: 'admin/registrations' }
  constraints(SubdomainConstraints.new(subdomain: ENV['ADMIN_SUBDOMAIN'])) do
    namespace :admin, path: ENV['ADMIN_PATH'] do
      root to: 'dashboard#index', as: :dashboard
      resources :locations, except: :show do
        resources :services, except: [:show, :index]
      end

' ADMIN_PATH'变量设置为' admin'所以' / admin'应代表根。这在本地(在开发中)工作正常,但在heroku上没有生产。

ActionController::RoutingError (No route matches [GET] "/admin").

我为任何其他管理员命名空间路由收到相同的错误,例如admin / locations。

在本地和heroku上运行rake路由我得到了正确的:

admin_dashboard GET /admin(.:format) admin/dashboard#index

干扰路线的东西,但我不知道从哪里开始寻找。

1 个答案:

答案 0 :(得分:0)

好的,无论出于何种原因,我完全没有考虑到子域约束。

constraints(SubdomainConstraints.new(subdomain: ENV['ADMIN_SUBDOMAIN']))

因此使用了blah.herokaupp.com&的heroku子域。我的ADMIN_SUBDOMAIN变量未相应设置,因此无法匹配约束。