![](/img/trans.png)
[英]Rails Devise routing error - “No route matches” (controller=>“devise/sessions”)
[英]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.