【Rails】belongs_to로 연결했는데 데이터를 저장할 수 없어요→단수 형식으로 바뀌었나요?
개시하다
Rails 앱 제작 과정에서
belongs_to
에서 해당 모델의 데이터가 잘 저장되지 않아 팝업되기 때문에 이를 해결하는 방법이다.정말 불가사의한 오류
이 보도에 도움이 되는 사람
belongs_to
에 연관이 있지만 제대로 저장되지 않음이 보도의 장점
컨디션
잘못된 내용
User 모델 및 Record 모델은 일대다 관계식을 가정합니다.
Record 테이블의 데이터를 다시 작성하여
save!
에서 데이터를 저장하려고 할 때 다음과 같은 오류가 발생했습니다.ActiveRecord::RecordInvalid: Validation failed: Users must exist
저장할 데이터는 외부 키워드user_id
가 있고 그 안에 정확한 수치가 있습니다. "어? 왜?"곤란합니다.이때의 모형은 이렇게 정의되었다.
app/models/record.rb
class Record < ApplicationRecord
belongs_to :users
end
여기서부터 응급 처리(잘못된 해결 방법)와 정확한 해결 방법을 기재한다.1. 응급조치(잘못된 해결 방법)
다음과 같이 변경되었습니다.
【Before】
app/models/record.rb
class Record < ApplicationRecord
belongs_to :users
end
↓【After】
app/models/record.rb
class Record < ApplicationRecord
belongs_to :users, optional: true
end
optional: true
관련 모델이 없어도 OK!이렇게 방목한 상태는 일단.검증을 피하다.그러나 전혀 의미 없는 갈등 설정인 만큼 결국 응급처치에 그친 셈이다.
해결책은 많지만 별로 안 좋은 것 같아요.
2. 해결(설정 오류)
【Before】
app/models/record.rb
class Record < ApplicationRecord
belongs_to :users, optional: true
end
↓【After】
app/models/record.rb
class Record < ApplicationRecord
belongs_to :user
end
다중 형식단수 형식
belongs_to 연관에 지정된 모델 이름은 단수 형식이어야 합니다.
Rails 가이드도 잘 썼어요!
영어로 생각하면 당연하고 부끄럽다
optional: true
도 필요하지 않으므로 삭제합니다.이러면 문제 없어!
끝말
끝까지 읽어주셔서 감사합니다
어쩔 수 없는 설정 오류로 시간을 허비한 만큼 같은 오류로 어려움을 겪는 사람이 있다면 참고하세요
참조된 웹 사이트(지금까지 지원해 주셔서 감사합니다)
Active Record 관련 - Rils 설명서
Reference
이 문제에 관하여(【Rails】belongs_to로 연결했는데 데이터를 저장할 수 없어요→단수 형식으로 바뀌었나요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/terufumi1122/items/1d87da9e42655152c229텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)