【Rails】destroy 방법을 사용하려면 "ArgumentError(wrong number of arguments(given0, expected1)":

2882 단어 초학자RubyRails

개시하다


Railsdestroy 방법을 사용할 때 다음과 같이 매개 변수가 필요하지만 오류가 발견되지 않습니다.
작은 실수지만 기록으로 남길 겁니다.
ArgumentError (wrong number of arguments (given 0, expected 1)):

컨디션

OS: macOS Catalina 10.15.1
Ruby: 2.6.5
Rails: 6.0.2.1

결론: 해결 방법


이번 인코딩은 아래와 같다.
def destroy
  posts = Post.where(user_id: 1)
  posts.destroy #ここでエラー発生
end
def destroy
  post = Post.find_by(user_id: 1)
  post.destroy #これは通る
end
이렇게 선택find_by을 하면 통과할 수 있다.
또는 여러 개의 데이터가 일치할 때
def destroy
  Post.destroy_by(user_id: 1) #これも通る
end
destroy_by 사용 방법이 있으면 이 데이터를 총괄적으로 삭제할 수 있다.

이유:destroy에서 정렬을 처리할 수 없음

where라면 한 데이터라도 배열에 따라 되돌아온다.
따라서 정렬을 처리할 수 없음destroy 매개 변수를 찾지 못해 오류가 발생하겠지

끝말


끝까지 읽어주셔서 감사합니다
누군가에게 참고가 되었으면 좋겠네요

참조된 웹 사이트(지금까지 지원해 주셔서 감사합니다)

  • Active Record의 기본 - Rils 가이드
  • 좋은 웹페이지 즐겨찾기