2014-04-26 2 views
0

방금 ​​게시물 URL에 friendly_id를 구현했지만 "경로 일치 안 함 {: action =>"show ", controller =>"posts ", id => 무기 호} 필요한 키가 누락 : [: ID] "레일의 friendly_id 게시물에 댓글 달기 4

의견 컨트롤러를

before_filter :authenticate_user! 

def create 
    @comment = Comment.new(comment_params) 
    @comment.post_id = params[:post_id] 
    @comment.user_id = current_user.id 

    @comment.save 

    redirect_to post_path(@comment.post) 
end 

def comment_params 
    params.require(:comment).permit(:user_id, :body) 
end 

내가 friendly_id을 제거 테스트했습니다 그것은 확실히이 그것으로 장난입니다. 그것이 URL/posts/post-id/comments를 찾을 때 url/posts/post-name/comments (friendly_id)에 대한 설명을 작성했기 때문에 가정합니다.

아이디어가 있으십니까?

답변

1

댓글을 작성할 때 post_id을 전달하지 않습니다. params[:post_id]이 전송되지 않기 때문에 :id이 nil이라는 오류가 발생합니다. 귀하의 의견 양식에 새 레코드에 대해 post_id을 설정해야합니다.

+0

도움을 주셔서 감사합니다. 예를 들어 주시겠습니까? 루비와 레일은 아직 아주 새롭다. 실제 주석 형식에서 숨겨진 필드를 설정하는 것과 비슷합니까? – bvcm

+0

그것은 절대적으로 그것을하는 한 방법 일 것입니다. 'f.hidden_field : post_id, value : @ post.id''@ post'는 코멘트를 첨부하고 싶은 게시물입니다. –