0

나는 내 레일 앱에서 아주 간단한 코멘트 시스템을 사용하고 있습니다. 사용자가 주석 작성자 이름을 클릭하여 자신의 프로파일에 액세스 할 수있게하고 싶습니다.레일 : 댓글 내부에서 사용자의 프로필로 리디렉션

아무런 성공도없이 - 내가 무엇을 놓치고 있는지 잘 모르겠습니다.

No route matches {:action=>"show", :controller=>"users", :id=>nil} missing required keys: [:id] 

어떤 아이디어 내가 뭘 놓친 거지 :

<% @comments.each do |comment| %> 

      <p><a href="<%= user_path(@comment.user_id) %>" style="text-decoration : none"><%= image_tag comment.user.image, class: "img-circle", width: "30x30" if comment.user %><font class="small" color="#28c3ab"> @<%= comment.user.name if comment.user %></font></a> 

<% end %> 

그러나 나는 어떤 경로 일치 오류가 없다? 나는 쉬운 일임을 알고 있지만, 지금은 아이디어가 없습니다. 컨트롤러에서이 호출을 어디에 추가해야합니까?

user_path(@comment.user_id) 

에 :

user_path(comment.user_id) 

답변

1

나는 당신의 문제가 @comment

변화 될 수 있음을 알아 냈다. 인스턴스에 user_id이 할당되어 있지 않고 값이 nil 일 수 있습니다.

+0

동일합니다. 내부적으로 첫 번째 호출은 두 번째 호출로 변환됩니다. –

+0

같은 오류 - 동일한 호출입니다. – zacchj

+2

@zacchj가 문제 일 수 있음을 확인하십시오. – mohameddiaa27

0

확인 @comment.user_id의 값

+0

이상한 의견은 사용자 => 2.1.1 : 006> Comment = Comment.first와 연결되어 있습니다. (irb) : 6 : warning : 이미 초기화 된 상수 Comment /사용자/jeremyzaccherini/Desktop/코멘트 :로드 중 (0.2ms) SELECT "comments". * FROM "comments"ORDER BY "comments". " fundmymac/app/models/comment.rb : 1 : warning : 주석의 이전 정의는 여기에 => # zacchj

+0

보시다시피 각 댓글과 연결된 user_id가 있습니다. – zacchj

+0

코드는 첫 번째 설명에 user_id가 있음을 보여줍니다. 각 댓글 기록에 사용자 ID가 있습니까? 'Comment.pluck (: user_id)'를 실행하고 반환 된 배열에'nil' 값이 없는지 확인하십시오. –