新手问题 新手请教 Devise 设置路由的问题

fanbin0602 · 2016年12月02日 · 最后由 kooglezhang 回复于 2016年12月06日 · 2080 次阅读

刚开始认真学习 Rails,想写一个多用户的博客网站练习一下。

我现在用 devise 做用户验证,用户的实体是 User,文章实体是 Postdevise 会为用户验证相关的功能生成路由:devise_for :users,我现在想配置如下的路由:

/users/:user_id/posts
/users/:user_id/posts/:id
...

一开始做了如下尝试

devise_for :users do
  resources :posts
end

发现无效,上网查了原因,及别人的解决方案,得到了类似如下的结果:

devise_for :users, :path => 'accounts'
resources :users do
  resources :posts
end

但是,我的项目里并没有一个 UserController 存在,却使用了 resources :users,这是不是一个错误的做法?

想请教大家有没有更好的办法?

resources 会生成默认的七条路由,这个和 Controller 应该没关系

#1 楼 @yunshang

默认生成的七个路由,我可以这样避免:

resources :user, only: [] do
  resources :posts
end

想知道这是不是一种正确的做法。

你根据自己的实际需求添加的 UserController 满足路由嵌套,它生成的默认路由只是为了满足用户登录注册登出相关联的业务

需要 登录 后方可回复, 如果你还没有账号请 注册新账号