2011-11-10 2 views
1

나는 테스트 레일 앱으로 게임을하고 있습니다. 그러나 나는 내가 해결할 수없는 문제에 비틀 거렸다. 나는 사용자 컨트롤러를 가지고 있으며 거기에 activate 메서드가 있습니다. routes.rb 파일에서 Rails 3.1 컨트롤러 및 액션과 일치하는 경로가 없지만 존재합니다.

은 내가 activate_user_path(@user)를 사용하려고 그 후

match 'activate/:email/:validation_code' => 'users#activate', :as => :activate_user, :via => :get 

을 가지고 있지만 라우팅 오류가 발생합니다. 나는이 문제에 대한 검색을 시도

activate_user GET /activate/:email/:validation_code(.:format) {:controller=>"users", :action=>"activate"}

,하지만 당신은 경로를 구축 할 필요한 객체를 전달하는 것을 잊지 때 보통이 발생합니다

No route matches {:controller=>"users", :action=>"activate", :email=>#<User id: 12, email: "[email protected]", validation_code: "zbBPLQUsBgPvEJfcjxmXuxFxuJAKEoqQNASkbybihpnmzSbhxdC...", active: false, created_at: "2011-11-10 14:56:23", updated_at: "2011-11-10 14:56:23">}

라우팅이 rake routes을 보여줍니다 실행 .

모든 도움은 감사합니다 :)

+0

'...'로 끝나는 대신 전체 오류 메시지를 게시 할 수 있습니까? – meagar

+0

죄송합니다. 중요하지 않다고 생각했습니다. 나머지 부분은 사용자 객체의 다른 필드를 포함합니다. 나는 그 (것)들을 포함하기 위하여 지금 포스트를 편집 할 것이다. – zbrox

답변

1

난 당신이 실제로 GET이 아닌 방법으로 POST를 호출되어 있는지 확인합니다.

양식을 제출하는 경우 기본적으로 POST로 설정되어 있으므로 일치하는 경로가 없다는 것을 의미합니다. 위에서 나열한 경로는 GET 요청에 대해서만 작동합니다.

+0

사실 이것은'activate_user_path (@user)'를 사용하여 뷰에서 링크를 빌드 할 때 발생합니다. 그래서 거기에서 요청을 호출하지 않습니다. 브라우저 주소 필드에 URL을 수동으로 입력하면 경로가 일치하지 않습니다. – zbrox

0

activate_user_path (: email => @ user.email, : validataion_code => @ user.validation_code)가 효과가 있습니까?

편집

나는 이유는 모르겠지만, 내가 변경 한 경우 : validation_code는 작동 코딩.

match 'activate/:email/:code' => 'users#activate', :as => :activate_user, :via => :get 

아마 레일에 당신은 밑줄 경로에 var에 이름을 사용할 수 없지만이 확인되어야한다.

+0

나는 SO에 게시하기 전에 이것을 시도했다. 결과는 같습니다. 단 하나의 차이점은 물론 오류의 덤프입니다. 여기서는 전체 개체가 나열되지 않지만이 두 가지 속성 만 전달됩니다. – zbrox

+0

내 repsonse를 편집했습니다. 지금 확인하십시오. – sparrovv

+0

나는 이것을 시도했지만 아무 소용이 없다. – zbrox

관련 문제