2011-02-18 2 views
2

브라우저 (GET)를 통해 내 앱에서/users/registration/sign_up에 액세스하면 페이지가 렌더링됩니다. 내가 POST를 통해 같은 일을 수행 할 때 (중 대상/사용자/등록/sign_up/또는 아약스와 승 양식을 작성하여) 내 응용 프로그램은 다음과 같은 오류 반환 :Rails는 GET 요청을 이해하지만 POST 요청은 이해하지 못합니다.

알 수없는 행동 액션 '등록'할 수 없었다

devise_for : 내가 사용 인증을 위해 고안 사용하여 내 사용자 모델의 유증 경로를 만드는 오전

UsersController로 발견 사용자

이 경로를해야 내가 기대 유증/registrations_controller 노선 새로운 메소드를 실행한다 (현재 GET 요청을한다). 아마 요청을 이해하는 레일스가 POST 요청을 자동으로 create 메소드로 보내지 만, create 메소드에서 디버거를 먼저 시작하고 디버거가 수신되기 전에 디버거가 시작되지 않기 때문에 이것이 문제라고 생각하지 않습니다. 이 오류.

어떤 일이 벌어지고 있는지에 대한 경험이있는 사람이 있습니까? 필요한 경우 더 많은 정보를 제공해 드리겠습니다. 감사.

+0

경로에서'resources : users'를 사용하지 않고 왜 URI가'/ users/new'가 될까요? –

답변

4

유증은 터미널에서 rake routes을 실행하여 볼 수있는 레일 앱에 경로를 추가합니다

 new_user_session GET /users/sign_in(.:format) 
      user_session POST /users/sign_in(.:format) 
    destroy_user_session GET /users/sign_out(.:format) 
     user_password POST /users/password(.:format) 
    new_user_password GET /users/password/new(.:format) 
    edit_user_password GET /users/password/edit(.:format) 
         PUT /users/password(.:format) 
    user_registration POST /users(.:format) 
new_user_registration GET /users/sign_up(.:format) 
edit_user_registration GET /users/edit(.:format) 
         PUT /users(.:format) 
         DELETE /users(.:format) 
        root  /(.:format) 

그리고 당신은 발견 등의 GET /users/sign_up하지만 POST /users/sign_up있다. Devise를 만들 때 보조 도구 user_registration_path을 사용할 수있는 POST /users이 필요합니다. 이것은 Devise::RegistrationsController#create에 의해 처리됩니다.

+0

이 질문에 대한 답변입니다. 고맙습니다! 특정 경로를 추가 할 수있는 방법이 있습니까? 현재 가지고 있지 않지만 다음을 추가하고 싶습니다. POST/users/registration? 또한. : 형식의 의미는 무엇입니까? – user531065

+0

'사용자 '등록/등록'경로를 UsersController # 등록으로 보냅니다. '.format '은 요청 된 형식 (HTTP, XML, JSON 등)을 참조합니다. 이 모든 내용은 레일스 라우팅 가이드에 설명되어 있습니다. http://guides.rubyonrails.org/routing.html – zetetic

+0

대단히 감사합니다. 내 질문에 답합니다! – user531065

관련 문제