1

필자는 시스템을 시작할 것이며 우리가 필요로하는 모든 것을 다루기 때문에 레일을 선택했습니다.레코드 업데이트시 레일 일관성 검사

시스템의 특정 지점에서 데이터베이스 업데이트에 일관성이 필요하며 레일이 자동으로 레코드의 버전을 확인할 수있는 공식 문서가 있음을 기억합니다. 그러나 많은 양의 봤지만 그 페이지를 찾을 수 없습니다. 다시.

문제는 다음과 같다 :

  • 데이터베이스의 테이블의 레코드가 존재한다고 가정하자. "계정"이라고합시다.
  • Bob이라는 사용자가 해당 레코드를 찾아서 편집을 시작한다고 가정합니다. 사용자가 "Incomings"에서 "Sales"로 이름을 변경한다고 가정 해 봅시다.
  • Bob이 레코드를 편집 할 때 Susan이라는 다른 사용자가 정확하게 동일한 레코드를 찾아서 편집을 시작한다고 가정합니다. Susan이 계정의 이름을 "Incomings"에서 "Service fees"로 변경하려고한다고 가정 해 봅시다.
  • 그런 다음 Bob은 변경 내용을 저장합니다.
  • Bob이 변경 내용을 저장하면 Susan은 변경 내용을 저장하려고 시도합니다.

이 시점에서 시스템은 다른 사용자가 레코드를 변경했음을 Susan에게 알려야하며 변경 사항을 저장할 수 없습니다.

이 유효성 검사는 수동으로 수행 할 수 있지만 레일스가 자동으로 수행 할 수 있음을 기억합니다. 이 유효성 검사가 필요한 데이터베이스의 테이블에 대한 유일한 재계약은 "버전"열을 추가하는 것이며 레일스는이를 처리 할 것임을 기억합니다. 실제로 열이 "버전"또는 다른 것으로 불려야 만하는지 기억하지 못하지만 실제로는 열만이 기능을 사용할 수 있습니다.

문제는 더 이상 해당 설명서를 찾을 수 없다는 것입니다. 누구나 저에게 그 문서에 대한 링크를 제공 할 수 있다면 감사 할 것입니다. 왜냐하면 "버전"열의 재주문은 내가 기억하고있는 것이기 때문에 다른 것들을 돌봐야한다는 것을 알지 못하기 때문입니다.

미리 감사드립니다.

답변

1

음, 내 질문에 대한 답변을 찾았습니다.

문서는 API에 있으며 여기에서 찾을 수 있습니다 :

http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html

문서는 매우 짧은입니다! 그리고 필자는 필요한 칼럼의 이름에 잘못했다. 컬럼의 올바른 이름은 'lock_version'입니다.

적어도 내 질문을 읽어 주신 모든 분들께 감사드립니다.