【问题标题】:Devise broke by itself? /users/edit goes to 404设计自己坏了? /users/edit 转到 404
【发布时间】:2013-04-20 06:12:34
【问题描述】:

点击用户配置文件链接edit_user_registration_path (http://localhost:3000/users/edit) 时,昨天还可以使用。今天遇到一个 404 错误,看起来像这样。

    Routing Error

    No route matches {:controller=>"devise/ideas"}
    Try running rake routes for more information on available routes.

我检查了rake routes,我得到了

           like_idea GET    /ideas/:id/like(.:format)      ideas#like
        comment_idea POST   /ideas/:id/comment(.:format)   ideas#comment
               ideas GET    /ideas(.:format)               ideas#index
                     POST   /ideas(.:format)               ideas#create
            new_idea GET    /ideas/new(.:format)           ideas#new
           edit_idea GET    /ideas/:id/edit(.:format)      ideas#edit
                idea GET    /ideas/:id(.:format)           ideas#show
                     PUT    /ideas/:id(.:format)           ideas#update
                     DELETE /ideas/:id(.:format)           ideas#destroy
    new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
        user_session POST   /users/sign_in(.:format)       devise/sessions#create
destroy_user_session GET    /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
                     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
                     PUT    /users(.:format)               devise/registrations#update
                     DELETE /users(.:format)               devise/registrations#destroy
                root        /                              home#index

看起来正确的人可以看到edit_user_registration_path的正确路线 我是 Ruby 新手,因此我们将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby devise routes


    【解决方案1】:

    问题不在于您的 edit_user_registration_path。

    如果您查看错误消息,Rails 正在设计文件夹(即“devise/ideas”)中寻找一个想法控制器。如果您在那里没有控制器,则意味着您在某处调用了错误的路径。

    【讨论】:

      【解决方案2】:

      edit_user_registration_path 需要用户 ID。

      所以你需要像edit_user_registration_path(@user)这样的东西

      【讨论】:

      • 我已经从我在这里找到的另一个答案中尝试过。没什么区别。 :(
      • 有趣,如果我这样做 <%= debug @user %> 我得到
         --- ... 
        这可以解释为什么它不起作用,但我想知道为什么。
      • 我不同意。如果您运行bin/rake routes | grep edit_user_registration,您会看到这条路线不需要:id 参数(截至设计3.2 .. 4.2)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多