@all_comments = Comment.find(@task.id)
문제가있다 댓글이없는 경우이 오류를 찾을 수없는 기록을 던졌습니다. 어떻게하면 자동으로 실패하지 않으므로 아무 것도 반환하지 않습니까?
@all_comments = Comment.find(@task.id)
문제가있다 댓글이없는 경우이 오류를 찾을 수없는 기록을 던졌습니다. 어떻게하면 자동으로 실패하지 않으므로 아무 것도 반환하지 않습니까?
당신이 작동하지 않을 수 있습니다 무엇을하려고.
라인 find(@task.id)
은 보통 task
과 동일한 id
의 댓글을 검색합니다. 보통은 관계 설정 방법이 아닙니다.
task_id
라는 열을 것이다 작업 및 주석 테이블 및 코멘트 테이블을 가질 것이다.
class Task
has_many :comments
end
class Comment
belongs_to :task
end
을 다음 당신은 단순히 쓸 수 있습니다 : : 이런 경우에는 다음과 같이 당신은 당신의 모델을 작성할 수
@all_comments = @task.comments
나는 완전히 그 보내고 말았습니다! – d11wtq
나는 AR을 사용하지 않는,하지만 난 그냥 생각 : 대한 기록은 어떤 수정없이 #find
달리, 발견이있는 경우
@all_comments = Comment.find(:first, @task.id)
이 전무를 반환합니다.
편집 | 바로 가기도 있습니다 :
@all_comments = Comment.first(@task.id)
나는 당신이 예상 한 것과 다른 것으로 생각합니다. 귀하의 질의합니다 (Task
의 ID 임) ID @task.id
와 Comment
를 요청합니다.
귀하의 질의는 그렇게 가야한다 :
@all_comments = Comment.where(:task_id => @task.id)
또는
@task.comments
이것은 당신이 그에 따라 관계를 선언 한 경우 작동, 일부 더 많은 옵션 (추가 의견을 허용한다, 더 나은 ..).
거기 "Active Record Query Interface" a를 "Rails Guides" 봐, 그리고 되세요.레일은 find
통화 RecordNotfound
예외가 발생합니다. 이를 방지하기 위해 find_by
전화를 사용합니다. 당신이 TASK_ID 다음 사용자에 의해 find_all_by
방법을 작업 목록을 얻으려고 노력하는 경우
: task.comments 당신에게 의견의 목록을 반환해야 @
이# returns an empty array when no tasks are found
@comments = Comment.find_all_by_task_id(@task.id)
그렇지 않으면 find_by
# returns nil when no task is found
@comment = Comment.find_by_task_id(@task.id)
를 사용, 관계를 올바르게 설정했다면 빈 배열이 있으면. –