2012-10-04 2 views
1

레일 2.3에서 앱을 레일 3.0으로 업그레이드 할 때 클리어런스 젬 (gem 'clearance', '1.0.0.rc2')을 업그레이드했으며 메소드 삭제가 필요한 것 같습니다. .레일 3 메소드 삭제 허가

내가 할 내 서명을 업데이트

:

로 번역
<%= link_to 'SignOut', sign_out_path, :method => "delete" %>< 

:

<a href="/logout" data-method="delete" rel="nofollow">Logout</a> 

하지만 서버 로그를 볼 때, 그것은 말한다 :

Started GET "/sign_out?timeout=true" for 127.0.0.1 at 2012-10-03 20:28:38 -0400 
User Load '44c84e19c75fa993029ca68b4f32019d2a56ab22' LIMIT 1 
ActionController::RoutingError (No route matches "/sign_out"): 

레이크을 경로 :

sign_out DELETE /sign_out(.:format) {:action=>"destroy", :controller=>"clearance/sessions"} 

어떤 아이디어가 잘못되었을 수 있습니까?

관련 메모에서 나는 자동로 그다지 작동하지 않을 3 시간 후에, 나는 방법 = 자바 스크립트에서 삭제하는 방법을 모른다 ...?

function logout() 
{ 
    location.href='/sign_out?timeout=true'; 
} 

<% if current_user != nil %> 
// 3 hours of inactivity log them out 
var t= setTimeout("logout()",10800000); 
<% end %> 
+0

처음에는 코드가 멋지게 보이지만 서버 로그는 GET을 수행하고 있음을 명확하게 보여줍니다. 따라서 이것은 대답이 아니지만 고비를 극복하기 위해 href에서 적절한 제출 유형 입력으로 변경할 수도 있습니다. 귀하의 문제는 아마도 귀하의 경로가 아닌 href와 관련이 있습니다. 또한 이것은 두 가지 질문입니다. 두 번째 질문을 제거하고 별도로 질문해야합니다. – pduey

+0

고맙습니다 pdue, 나는 버튼을 통해 로그 아웃 만 할 수 있다면, 제 2 부분을 단추의 권고를 버리고 감추었습니다. 나는 그것이 DELETE를하는지 알아보기 위해 노력할 수 있다고 생각합니다. ... – Joelio

+0

그게 무슨 뜻인지, 일시적으로 버튼으로 시도해보십시오. 그러면 실제 문제를 격리 할 수 ​​있습니다. 그런 다음 http://stackoverflow.com/questions/4342083/rails-3-link-to-method-delete-not-working을 읽으십시오. – pduey

답변

0

그래, 난 레일 3에서 심지어 자바 스크립트는 외부 소스에서 오는 대답을 찾았습니다. 우리 레일 3을 설치 한 사람은 프로토 타입이나 jquery를 포함하지 않았으므로 아무 것도이 작업을하지 않았습니다. https://github.com/rails/jquery-ujs을 구성하면 트릭을 수행해야합니다!