【发布时间】:2018-03-23 09:38:13
【问题描述】:
我正在尝试访问
POST http://localhost:3000/login
MyEngine 路线
devise_for :accounts, { class_name: 'MyEngine::Account', skip: [:sessions, :registration, :password] }
as :account do
post 'login', to: 'sessions#create'
end
我的申请途径
Rails.application.routes.draw do
mount MyEngine::Engine => '/engine', as: 'engine'
end
注释隔离空间
module MyEngine
class Engine < ::Rails::Engine
#isolate_namespace MyEngine
end
end
点击 POST http://localhost:3000/login 后出错
#<ActionController::RoutingError: No route matches [POST] \"/login\">
如何直接从URL路径访问Engine的登录方式?
【问题讨论】:
-
你能把你的整个
routes.rb文件贴出来吗? -
是这样的网址
/engine/login吗?根据您的主要 route.rb 您的网址应该是这个 -
是的,/engine/login 它进入了会话控制器。但现在我开始 POST "/abc_services_core/login" for 127.0.0.1 at 2018-03-23 15:22:37 +0530 ActionController::RoutingError (uninitialized constant SessionsController):
-
会话控制器在引擎类 MyEngine::SessionsController 中是这样的
标签: ruby-on-rails ruby devise rails-engines