简体   繁体   English

Rails插件中的设计路线不正确

[英]Devise Routes in a rails plugin are incorrect

I am developing a rails plugin. 我正在开发一个Rails插件。 I want to use devise in the plugin for authentication. 我想在插件中使用devise进行身份验证。

It seems that the routes are drawn incorrectly: 路线似乎绘制不正确:

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

They should be: 他们应该是:

        new_user_session GET      /users/sign_in(.:format) devise/sessions#new
            user_session POST     /users/sign_in(.:format) devise/sessions#create

This is the route file of the plugin: 这是插件的路由文件:

Subscribem::Engine.routes.draw do
  devise_for :users, class_name: "Subscribem::User"

The plugin is isolated with a namespace: 该插件与名称空间隔离:

module Subscribem
  class Engine < ::Rails::Engine
    isolate_namespace Subscribem

If I remove the isolate_namespace the devise routes will ok. 如果删除isolate_namespace,则设计路线可以。 But I would still like to isolate the plugins own controllers. 但是我仍然想隔离插件自己的控制器。

I have an option: 我有一个选择:

in the plugins routes I can override the controllers: 在插件路由中,我可以覆盖控制器:

devise_for :users, class_name: "Subscribem::User", controllers: { sessions: 'devise/sessions', passwords: 'devise/passwords', registrations: 'devise/registrations' }

But more options are welcome 但是欢迎更多选择

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM