2014-12-12 3 views
0

Rails Routing from the outside in 페이지의 섹션 2.2에는 http 동사와 URL을 사용하여 4 개의 URL을 7 개의 경로와 일치시키는 방법에 대해 설명합니다.레일스 : 내 코드에서 'call'경로에 사용되는 http 동사를 결정하는 것은 무엇입니까?

섹션 2.3에서는 헬퍼 경로를 사용할 수있는 방법을 설명하고 2.2 절의 표에있는 경로와 일치하는 4 개의 경로가 있음을 설명합니다.

경로를 호출 할 때 사용되는 동사 (VERB)를 결정하는 내용을 알고 싶습니다. 예를 들어, 내가 resource :photos이 있다고 나는 전화 :

redirect_to photo_path(10) 

나에게 무엇을 알려줍니다 그 옵션에 대한 3 명 가능한 동사 (PUT/PATCH를 GET 또는 삭제 - 위의 섹션 2.2의 표에 따라) 중 어느 것 경로의 일부로 포함되어 있습니까?

답변

1

경로는 경로이며, VERB (HTTP METHOD) 정보는 포함되어 있지 않습니다. 예를 들어, showdestroy 자원 행동 경로는 기본적으로 동일로이고, 당신이 동일한 경로 도우미 (하지만 다른 HTTP 방식) 사용

<%= link_to 'show photo', photo_path(photo) %> <!-- returns 'default' link, so GET method is used here --> 
<%= link_to 'delete photo', photo_path(photo), method: :delete %> 

리디렉션이 get 항상 수행됩니다.

+0

괜찮 으면 좋겠지 만,이 두 줄은 다른 일을합니다. 맞습니까? 경로가 동일하면 어떻게 다른 동작을 트리거합니까? 그 차이를 만드는'method : delete'입니까? – moosefetcher

+0

@moosefetcher 예,'method : : delete'는 브라우저에'DELETE' 메소드를 사용해야 함을 나타내는'a' 태그에'data-method = "delete"속성을 추가합니다. –

+0

고맙습니다. 따라서 어떤 경우에는 어떤 동사가 사용되는지를 제어 할 수 있습니다. 나는 내가 데리러 갈 필요가있는 이러한 임의적 인 사실들을 모두 추측하고 있습니다 - 예 : '리다이렉트는 항상 GET으로 수행됩니다'. Rails는 현재 매우 혼란스럽고 난독 화되어 있습니다. 다른 여러 작업 예제에 대해 비슷한 질문을 할 필요가 있습니다. 하지만 답장을 보내 주셔서 감사합니다. – moosefetcher

관련 문제