을 파괴라우팅이 같은 세션 컨트롤러에 대한 파괴 활동에 연결하고있어 행동
없음 경로 일치 {: 행동 => "파괴"컨트롤러 => "세션"} 필요한 키 누락 : [: ID]
,
링크를 제공 할 객체 ID가 없을 때 파괴 액션에 링크하고 REST/리소스 방법론을 레일스에 유지하려면 어떻게해야합니까?
을 파괴라우팅이 같은 세션 컨트롤러에 대한 파괴 활동에 연결하고있어 행동
없음 경로 일치 {: 행동 => "파괴"컨트롤러 => "세션"} 필요한 키 누락 : [: ID]
,
링크를 제공 할 객체 ID가 없을 때 파괴 액션에 링크하고 REST/리소스 방법론을 레일스에 유지하려면 어떻게해야합니까?
이
routes.rb 단일 자원으로 당신의 세션 컨트롤러에 경로를 치료하는 것이 가장 좋습니다
resource :sessions
문서 : http://guides.rubyonrails.org/routing.html#singular-resources
이 당신에게 경로를 줄 것이다 신분증없이 사용할 수 있습니다.
/DELETE 세션 세션 번호는
그렇게 생각하지 않았어! +1 – RSB
당신은과 같이, 그 경로에 세션 자원을 전달해야
<%= link_to "Sign out", session_path(session), method: :delete %>
레일 쇼를 삭제 작업은 자원을 필요로한다.
destroy
당신이 그것을 작동하게하는 PARAMS에서 id
을 통과해야, 회원 경로,하지만 당신은 도움이 수집 경로
resources :sessions, only: [:new, :create] do
delete :destroy, on: :collection
end
희망으로 변환이 작업을 수행 할 수 있습니다!
기본적으로 destroy 메소드는 링크와 함께 전달되어야하는 id를 필요로합니다. 예 : 당신의 목적은 단지/명확한 세션을 삭제하는 경우 사용자가 로그인 한 사용자가 세션을 파괴하고, 당신이 경우 id
또는 로그인 한 사용자의 session
, 을 통과해야, 귀하의 링크는 다음과 같이 <%= link_to "Sign out", session_path(user.id), method: :delete %>
또는 을해야한다 그때 만 당신은 길을 바꾸어야합니다.
resources :sessions, only: [:new, :create]
delete '/session', to: 'sessions#destroy'
두 가지 유형의 링크 (ID를 전달할 수도 있음)를 원한다면이 경로를 시도해야합니다. delete '/session(/:id)', to: 'sessions#destroy'
당신은 당신의 사건에 DELETE
방법 /users/sign_out
또는 sessions/sign_out
하지 /sessions
될 수있는 경로를 변경해야 파괴한다.
devise의 session destroy 동작과 경로를 살펴보십시오.
그래서, 당신은 sessions#destroy
를 가리키는 경로 /session/sign_out
를 만듭니다
resource :session do
delete :destroy, path: 'sign_out', as: "destroy"
end
같은 것을 사용할 수 있습니다 그리고 당신은 destroy_session_path
로보기에 호출 할 수 있습니다.
'레이크 루트'를 할 때 세션에 어떤 프리픽스를 사용합니까? – Kumar
그런 다음 개체 ID가없는 경우이 링크를 표시하면 안됩니다. –
세션에 ID가 없습니다. –