>

모델에 "포함"이 포함 된 테이블이 있습니다. 테이블에는 두 테이블을 연결하는 xx_id 필드가 포함되어 있습니다.

그러나 때때로 xx_id는 공백이됩니다. 그렇다면 ActiveRecord :: RecordNotFound를 얻습니다. 오류를 원하지 않습니다.이 필드에 빈 화면 만 표시하고 싶습니다.

무엇을 제안 하시겠습니까?

  • 답변 # 1

    find 를 사용할 때

    레일은 항상ActiveRecord :: RecordNotFound예외를 발생시킵니다.  방법. 와이즈 비즈  그러나 메소드는 find_by_* 를 리턴합니다.  기록이없는 경우

    ActiveRecord 설명서는 다음을 알려줍니다 :

    와이즈 비즈

    nil 를 반환하려면  레코드를 찾을 수 없으면 다음과 같이 예외를 처리하십시오.

    RecordNotFound - No record responded to the find method. Either the row with the given ID doesn't exist or the row didn't meet the additional restrictions. Some find calls do not raise this exception to signal nothing was found, please check its documentation for further details.

  • 답변 # 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

  • 이전 xcode - 번호로 검색하고 ABAddressBook을 사용하여 이미지 가져 오기
  • 다음 internationalization - Rails I18n의 yml 파일에서 모든 번역을 검색하는 방법