【发布时间】:2014-10-12 17:35:12
【问题描述】:
我的 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").
对于任何其他管理命名空间的路由,我都会遇到相同的错误,例如管理员/位置。
在本地和 heroku 上运行 rake 路线我得到了正确的:
admin_dashboard GET /admin(.:format) admin/dashboard#index
有东西干扰了路线,但我不知道从哪里开始。
【问题讨论】:
-
如何在 Heroku 上设置 ENV 变量?在 Heroku 上设置和读取 ENV 变量似乎存在问题。运行
$ heroku config:get ADMIN_PATH以确认您的变量设置正确。 -
是的,设置正确,我试过改成,还是不行:(
标签: ruby-on-rails heroku devise routes