We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
레일즈 모델의 has_many에는 dependent: :destroy 라는 개념이 있습니다. 부모 모델이 DB에서 제거되었을 경우, 자식 모델도 함께 DB에서 없애주는 기능이죠.
가령 사용자와 초대장 모델의 연관관계를 다음과 같이 정의했다면,
class User < ActiveRecord::Base has_many :invitations end class Invitation < ActiveRecord::Base belongs_to :user end
사용자를 DB에서 제거하면 초대장이 남아있게 됩니다. 이를 방지하기 위해서는 다음의 코드를 추가해야겠죠.
class User < ActiveRecord::Base has_many :invitations, dependent: :destroy end class Invitation < ActiveRecord::Base belongs_to :user end
모델 연관관계를 살펴보고 dependent: :destroy가 필요한 부분은 추가해 주면 좋겠습니다. ㅎㅎ
dependent: :destroy
The text was updated successfully, but these errors were encountered:
제가 구현하던 것도 같은 고민이 있었는데 그냥 저희끼리 있을때 간단히 얘기하기로는 "관계를 끊어 남겨버리는 한이 있더라도 소중한(?) DB를 날리진 말자"로 정했었는데요. 다시 정책을 세워볼 필요가 있을까요?
Sorry, something went wrong.
그런 경우에는 destroy할 때 flag를 세우는 방식을 사용하는 걸 권장합니다. ㅎㅎ
User는 없는데 Invitation만 남아있는 경우가 생긴다면 곤란할 것 같습니다. invitations.user_id가 nil인게 버그로 생긴 잘못된 데이터인지, User가 삭제된 데이터인지 알 수 없으니까요.
User를 지울거면 둘 다 지우고, 안 지울거면 둘 다 안 지우되 flag를 세워주는 게 좋을 것 같아요. ㅎㅎ
No branches or pull requests
레일즈 모델의 has_many에는 dependent: :destroy 라는 개념이 있습니다.
부모 모델이 DB에서 제거되었을 경우, 자식 모델도 함께 DB에서 없애주는 기능이죠.
가령 사용자와 초대장 모델의 연관관계를 다음과 같이 정의했다면,
사용자를 DB에서 제거하면 초대장이 남아있게 됩니다.
이를 방지하기 위해서는 다음의 코드를 추가해야겠죠.
모델 연관관계를 살펴보고
dependent: :destroy
가 필요한 부분은 추가해 주면 좋겠습니다. ㅎㅎThe text was updated successfully, but these errors were encountered: