2012-09-18 4 views
1

내 모든 유증 노선은 내가 그들이 원하는 방식으로 얻으려고 :고안 라우팅 오류 : 경로와 일치 [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 

그것은 어렵다. 그래서 누군가가 알고 있다면 크게 도움이 될 것입니다. 감사.

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

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

에 위의 내가 변경 한 라인에서

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 

또는 귀하의 요청합니다

답변

1

내가 쓰고, 여기에 전체 코드를 한 줄 변화를 수행 게시물 요청.

+0

새 등록을 제출하면 다음과 같이됩니다. '경로가 [POST]와 일치하지 않습니다.'/ join " – LearningRoR

+0

변경 사항은 사용자가 수행합니다. –

+0

방금 ​​한 것처럼'post'를'put '으로 바꾸 었습니다. – LearningRoR

관련 문제