2017-11-26 5 views
1

레일에서 중첩 된 리소스를 사용하는 방법을 배우고 있습니다. 간단하고 재현성있게 유지하려면 두 개의 리소스 인 postscomments을 가진 매우 간단한 블로그 앱을 설치해야합니다. 대부분의 코드는 스캐 폴드에 의해 생성되었습니다. 나는 성공적으로 각 게시물 아래 comments 표시 post#show을 수정 한레일에서 중첩 된 리소스를 사용할 때 form_with를 수정하는 방법

Add New Comment에 대한 링크도 new comment 양식을 렌더링합니다. 그러나 나는 라우팅 오류 코멘트를 저장하고 얻을 수 없습니다

ActionController::RoutingError (No route matches [POST] "/posts/1/comments/new"

부분 주석 형태

원/전에 중첩 자원의 비교 :/후 수정

<%= form_with(model: comment, local: true) do |form| %> 

중첩 리소스 :

<%= form_with(url: new_post_comment_path, 
    scope: :comment, local: true) do |form| %> 

중첩 된 리소스가없는 별도의 분기 master과 중첩 된 리소스가없는 nestedRoutes으로 코드를 github repo으로 푸시했습니다. 지역 사회의 도움에 감사 할 것입니다.

참고 : Nested Resources w/ Rails 5.1 form_with에 대한 답변은 저에게 적합하지 않았습니다.

답변

1

당신이 지나가고있는 URL이 new_post_comment_path 인 것처럼 보입니다. 폼이 생성 경로로 들어가기를 바랄 때입니다. 귀하의 경로를 바탕으로이 가정은 post_comments_path입니다.

그렇기 때문에 오류가 표시되는 이유는 new 경로에 대해 정의 된 POST 메서드가 없습니다 (GET 만 해당).