问题描述
在通常情况下,如果要在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'
}