簡體   English   中英

設計路由錯誤:沒有路由匹配[PUT]

[英]Devise routing error: No route matches [PUT]

我正在嘗試使我所有的設計路線成為我希望它們成為的方式:

devise_for :users, :controllers => { :registrations => 'registrations' }
  devise_scope :user do
    get 'join' => 'devise/registrations#new', :as => :new_user_registration
    post 'join' => 'devise/registrations#create', :as => :user_registration
    get 'login' => 'devise/sessions#new', :as => :new_user_session
    post 'login' => 'devise/sessions#create', :as => :user_session
    delete 'logout' => 'devise/sessions#destroy', :as => :destroy_user_session
    get 'account_settings' => 'devise/registrations#edit', :as => :edit_user_registration
    put 'account_settings' => 'devise/registrations#update', :as => :update_user_registration
    get 'forgot_password' => 'devise/passwords#new', :as => :new_user_password
    get 'user', :to => 'user_pages#home', :as => :user_root
  end

  match '/user' => 'user_pages#home', :as => :user_root

當我轉到“帳戶設置”(或“設計編輯”注冊)並嘗試更新它時。 我得到錯誤:

Routing Error

No route matches [PUT] "/join"

它應該返回到主頁。 為什么會出現此錯誤? 我如何解決它?

編輯

這是所有的設計路線以及我的路線:

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
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        registrations#cancel
       user_registration POST   /users(.:format)               registrations#create
   new_user_registration GET    /users/sign_up(.:format)       registrations#new
  edit_user_registration GET    /users/edit(.:format)          registrations#edit
                         PUT    /users(.:format)               registrations#update
                         DELETE /users(.:format)               registrations#destroy
   new_user_registration GET    /join(.:format)                devise/registrations#new
       user_registration POST   /join(.:format)                devise/registrations#create
        new_user_session GET    /login(.:format)               devise/sessions#new
            user_session POST   /login(.:format)               devise/sessions#create
    destroy_user_session DELETE /logout(.:format)              devise/sessions#destroy
  edit_user_registration GET    /account_settings(.:format)    devise/registrations#edit
       new_user_password GET    /forgot_password(.:format)     devise/passwords#new

我很難看清這一點,看看我需要改變什么。 因此,如果有人知道這將有很大幫助。 謝謝。

做一行更改,我在這里寫完整的代碼:

devise_for :users, :controllers => { :registrations => 'registrations' }
  devise_scope :user do
    get 'join' => 'devise/registrations#new', :as => :new_user_registration
    put 'join' => 'devise/registrations#create', :as => :user_registration
    get 'login' => 'devise/sessions#new', :as => :new_user_session
    post 'login' => 'devise/sessions#create', :as => :user_session
    delete 'logout' => 'devise/sessions#destroy', :as => :destroy_user_session
    get 'account_settings' => 'devise/registrations#edit', :as => :edit_user_registration
    put 'account_settings' => 'devise/registrations#update', :as => :update_user_registration
    get 'forgot_password' => 'devise/passwords#new', :as => :new_user_password
    get 'user', :to => 'user_pages#home', :as => :user_root
  end

  match '/user' => 'user_pages#home', :as => :user_root

在上面我改變了線

post 'join' => 'devise/registrations#create', :as => :user_registration

put 'join' => 'devise/registrations#create', :as => :user_registration

或發出您的請求發布請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM