我正在开发一个rails插件。我想在插件中使用devise进行身份验证。
似乎错误地绘制了路线:
Routes for Subscribem::Engine:
new_user_session GET /users/sign_in(.:format) subscribem/sessions#new
user_session POST /users/sign_in(.:format) subscribem/sessions#create
他们应该是:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
这是插件的路径文件:
Subscribem::Engine.routes.draw do
devise_for :users, class_name: "Subscribem::User"
该插件与命名空间隔离:
module Subscribem
class Engine < ::Rails::Engine
isolate_namespace Subscribem
如果我删除了isolate_namespace,那么设计路线就可以了。但我仍然希望隔离插件自己的控制器。
答案 0 :(得分:0)
我有一个选择:
在插件路由中我可以覆盖控制器:
devise_for :users, class_name: "Subscribem::User", controllers: { sessions: 'devise/sessions', passwords: 'devise/passwords', registrations: 'devise/registrations' }
但欢迎更多选择