【问题标题】:Ruby on Rails Error, Routing Error No route matches [GET] "/users", DeviseRuby on Rails 错误,路由错误没有路由匹配 [GET]“/users”,设计
【发布时间】:2014-04-17 04:34:42
【问题描述】:

所以我在我的 Rails 项目中添加了设计并生成了一个名为 users 的用户脚手架,之后我尝试进入我网站的 /users 部分,但我只能访问它的几个分支,例如:/users/sign_in/users/sign_up/users/edit

这是我得到的错误页面:

[错误页面]:

这是我的路线文件:

Stoabook::Application.routes.draw do
  devise_for :users
  resources :statuses
  root to: 'statuses#index'
end

这就是我在运行 rake 路由时得到的结果:

                  Prefix Verb   URI Pattern                    Controller#Action
    new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
        user_session POST   /users/sign_in(.:format)       devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
       user_password POST   /users/password(.:format)      devise/passwords#create
   new_user_password GET    /users/password/new(.:format)  devise/passwords#new
  edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                     PATCH  /users/password(.:format)      devise/passwords#update
                     PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
   user_registration POST   /users(.:format)               devise/registrations#create
new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                     PATCH  /users(.:format)               devise/registrations#update
                     PUT    /users(.:format)               devise/registrations#update
                     DELETE /users(.:format)               devise/registrations#destroy
            statuses GET    /statuses(.:format)            statuses#index
                     POST   /statuses(.:format)            statuses#create
          new_status GET    /statuses/new(.:format)        statuses#new
         edit_status GET    /statuses/:id/edit(.:format)   statuses#edit
              status GET    /statuses/:id(.:format)        statuses#show
                     PATCH  /statuses/:id(.:format)        statuses#update
                     PUT    /statuses/:id(.:format)        statuses#update
                     DELETE /statuses/:id(.:format)        statuses#destroy
                root GET    /                              statuses#index

我尝试过多次重启我的服务器。

编辑:

我没有搭建它。我使用了设计助手:

rails generate devise user

【问题讨论】:

  • 对,所以这不会为您生成/users 的所有用户的列表,它会为您生成用户登录、注销等的界面。
  • 好的。我不知道。谢谢。

标签: ruby ruby-on-rails-4 devise routes


【解决方案1】:

看来您实际上并没有为用户搭建脚手架,但您使用了设计生成器。这是一个很大的区别。常规脚手架生成所有 CRUD 路由。另一方面,设计生成器没有。它只关心身份验证资源,例如注册或登录。

如果您想要更多路线,您应该生成自己的用户控制器。通过这种方式,您可以覆盖或扩展已经在后台提供的设计。检查 github 页面和 wiki 以了解设计可能是一个明智的计划。

附:如果可能,请尽量避免使用脚手架。是的,它加快了速度,但是在了解实际情况的范围内这样做。此外,它通常会产生比您实际需要的更多的东西。如果您忘记删除未使用的生成代码,您的代码就会变得臃肿。

【讨论】:

    猜你喜欢
    • 2016-10-28
    • 2014-03-26
    • 2016-05-18
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多