如何在Rails 6中的Devise路线中嵌入路线资源

问题描述

在通常情况下,如果要在routes.rb文件中将资源嵌入Ruby on Rails的其他资源中,它将看起来像这样:

# routes.rb

resources :parents do
  resources :children
end

以上内容将允许使用类似http:// localhost:3000 / parents / 1 / children的网址。

我的问题是如何使用devise_for :parents文件中存在的默认routes.rb获得相同的结果?

我尝试过:

# routes.rb

devise_for :parents do
  resources :children
end

它不能正常工作。

非常感谢您的帮助!

解决方法

devise_for仅创建与注册和登录相关的路由,因此您仍将使用

resources :parents do 
  resources :children
 end
在路由中

表示嵌套的资源路径。这里有详细的答案:Nested Resource with Devise - Rails3

如果生成Devise控制器和视图,则还需要像这样在路线中指定那些

  devise_for :parents,controllers: {
    sessions: 'parents/sessions',registrations: 'parents/registrations'
  }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...