gpt4 book ai didi

ruby-on-rails - 注销链接的路由问题?删除与获取操作?

转载 作者:数据小太阳 更新时间:2023-10-29 08:46:40 26 4
gpt4 key购买 nike

现在我的注销链接的路由指向 sessions#destroy,但它不是 HTTP 删除动词,所以它不起作用。这个问题让我很沮丧,因为我应该能够自己解决这个问题,但到目前为止我还没有运气。这是我在尝试注销时收到的错误消息:

没有路由匹配 [DELETE] "/logout"

这是我的路线文件:

Rails.application.routes.draw do



get 'line_items/create'



root 'static_pages#home'
get 'testimonials' => 'static_pages#testimonials'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
get 'logout' => 'sessions#destroy'
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :products
resources :categories
resources :line_items
resources :carts
end

session Controller 中的销毁方法:

def destroy
forget(current_user)
session.delete(:user_id)
@current_user = nil
redirect_to root_url
end

注销链接:

          <li>
<%= link_to "Log out", logout_path, method: "delete" %>
</li>

rake路由的相关结果:

logout_path     GET     /logout(.:format)   sessions#destroy
users_path GET /users(.:format) users#index
POST /users(.:format) users#create
new_user_path GET /users/new(.:format) users#new
edit_user_path GET /users/:id/edit(.:format) users#edit
user_path GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
sessions_path POST /sessions(.:format) sessions#create
new_session_path GET /sessions/new(.:format) sessions#new
session_path DELETE /sessions/:id(.:format) sessions#destroy

感谢您的帮助。

最佳答案

你有两个选择:

  1. 更改链接以使用定义的路由

    <%= link_to "Log out", logout_path %>

    <%= link_to "Log out", session_path, method: "delete" %>

    请注意,为了使最后一个链接起作用,您需要将其更改为单一资源(资源,而不是资源)。

    resource :sessions, only: [:new, :create, :destroy]
  2. 改变路线从

    get 'logout' => 'sessions#destroy'

    delete 'logout' => 'sessions#destroy'

无论如何,session 上的复数 resources 没有意义。

关于ruby-on-rails - 注销链接的路由问题?删除与获取操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com