如何在 Rails 6 中的 Devise 路由中嵌入路由资源
How to embed a route resource in a Devise route in Rails 6
在正常情况下,如果要将资源嵌入到 routes.rb
文件中 Rails 上的 Ruby 中的其他资源中,它看起来像这样:
# routes.rb
resources :parents do
resources :children
end
以上将允许像 http://localhost:3000/parents/1/children.
这样的 url
我的问题是如何使用我的 routes.rb
文件中存在的默认值 devise_for :parents
获得相同的结果?
我试过了:
# 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'
}
在正常情况下,如果要将资源嵌入到 routes.rb
文件中 Rails 上的 Ruby 中的其他资源中,它看起来像这样:
# routes.rb
resources :parents do
resources :children
end
以上将允许像 http://localhost:3000/parents/1/children.
这样的 url我的问题是如何使用我的 routes.rb
文件中存在的默认值 devise_for :parents
获得相同的结果?
我试过了:
# 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'
}