2012-04-08 2 views
0

저는 레일에서 새롭고, 첫 번째 레일 어플리케이션 (블로그)을 작성하여 rails's docs의 가이드에 따라 단계적으로 진행합니다.레일은 동일한 URL에 대한 메소드를 차별화하는 방법은 무엇입니까

그러나 응용 프로그램을 실행할 때 이해할 수없는 것을 발견했습니다.

http://localhost:3000/posts/2

GET 방법을이 누구의 ID입니다 게시물의 세부 사항을 반환합니다 2.

그러나 업데이트는이 게시물에, 나는 양식의 조치가 '/ 게시물/2'입니다 발견했을 때.

게시물을 삭제할 때 레일스가 '/ posts/2'동작과 POST 액션을 사용하여 본문에서 양식 요소를 생성 했으므로 레일스가이 게시물을 어떻게 업데이트하는지 또는 삭제했는지 궁금합니다.

이후 컨트롤러에서 조건 단어를 찾지 못했습니다.

누구든지 말해 줄 수 있습니까? 실행 조치

답변

2

앱 폴더에 명령 rake routes를 수행 경로의 고유 한 조합과 동사에 의해 결정됩니다, 당신은 경로의 목록이 표시됩니다.

경로는 리소스에 대한 RESTful 경로입니다.

동사 GETPOSTDELETEPUT

나는 또한 더 많은 세부 사항이 설명 독서, 같은 Rails Routing Guide 추천 할 것입니다.

여기 rake routes에서 내 애플 리케이션 중 하나의 샘플 출력입니다 :

 path name|verb |path        |action 
============================================================================ 
    alias_lists GET /alias_lists(.:format)    alias_lists#index 
       POST /alias_lists(.:format)    alias_lists#create 
new_alias_list GET /alias_lists/new(.:format)   alias_lists#new 
edit_alias_list GET /alias_lists/:id/edit(.:format) alias_lists#edit 
    alias_list GET /alias_lists/:id(.:format)   alias_lists#show 
       PUT /alias_lists/:id(.:format)   alias_lists#update 
       DELETE /alias_lists/:id(.:format)   alias_lists#destroy 

show, updatedestroy 모두 같은 경로가 있습니다 만, 다른 동사.

show's verb = GET 
update's verb = PUT 
destroy's verb = DELETE 
+0

모두 해당 routes.rb에 있습니다. 좋은 답변 @normalocity –

+0

하지만'/ posts/2' 경로의 경우 동사가'POST'이고 경로와 동사가 동일합니다. 레일스는 게시물 2를 삭제하거나 업데이트하는 것을 어떻게 알 수 있습니까? – hguser

+0

동사는'destroy'와'update'에 대해 동일하지 않습니다. 'destroy' 액션은'DELETE' 동사를 취하고'update' 액션은'PUT' 동사를 취합니다. 일부 샘플을 사용하여 답변을 업데이트했습니다. 레이크 라우트 출력이 위의 내용과 비슷하지 않은 경우 질문에 게시하여 사용자가 말하는 내용을 볼 수 있습니다. 우리는 또한'config/routes.rb'에서 코드를 볼 필요가 있습니다. – jefflunt

관련 문제