홈>
모델에 "포함"이 포함 된 테이블이 있습니다. 테이블에는 두 테이블을 연결하는 xx_id 필드가 포함되어 있습니다.
그러나 때때로 xx_id는 공백이됩니다. 그렇다면 ActiveRecord :: RecordNotFound를 얻습니다. 오류를 원하지 않습니다.이 필드에 빈 화면 만 표시하고 싶습니다.무엇을 제안 하시겠습니까?
- 답변 # 1
- 답변 # 2
글을 쓰지 못했습니다
nil
- 답변 # 3
begin my_record = Record.find params[:id] rescue ActiveRecord::RecordNotFound => e my_record = nil end
와이즈 비즈를 반환 찾은 경우 객체이거나 그렇지 않은 경우 nil입니다.
- 답변 # 4
찾기를 호출하면 배열을 얻습니다. 배열에 객체가 없으면 count는 0입니다.
my_record = Record.find(params[:id) rescue nil
또는
Record.find_by(id: params[:id])
Record
관련 자료
- ruby - Rails Server를 설정할 수없는 부트 스냅 오류 (종료 코드 2)
- Rails 5 앱에서 POST 요청을했는데 왜 "Completed 406 Not Acceptable"이 표시됩니까?
- ruby - 왜`activerecord - : recordnotfound를 얻습니까? rails api의 post 요청에서 오류가 발생했습니다 ( 'id'를 찾을 수 없습니다)
- ruby - yml 파일에서 Rails ENV 변수를 가져올 때 전체 문자열 대신 부동 소수점을 제공하는 문제
- ruby - Rails 5, 레이크 작업에서 클래스를 호출 할 때 왜 정의되지 않은 상수를 얻습니까?
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
find
를 사용할 때레일은 항상ActiveRecord :: RecordNotFound예외를 발생시킵니다. 방법. 와이즈 비즈 그러나 메소드는
find_by_*
를 리턴합니다. 기록이없는 경우ActiveRecord 설명서는 다음을 알려줍니다 :
와이즈 비즈nil
를 반환하려면 레코드를 찾을 수 없으면 다음과 같이 예외를 처리하십시오.