2012-04-01 3 views
20

레일에서 paper_trail을 사용하여 모델 버전을 추적합니다. 그러나 github repo에 대한 설명서는 보석이 has_many, belongs_to 연관을 지원하지 않음을 나타냅니다.has_many/belongs_to에서 버전을 수정하는 방법 paper_trail과의 연결

의 내가 어떤 회사 수의 CEO들 이름을 기록하는 응용 프로그램을 한 가정 해 봅시다 :

class Company < ActiveRecord::Base 
    has_many :ceos 
    has_paper_trail 
end 

class Ceo < ActiveRecord::Base 
    belongs_to :companies 
    has_paper_trail 
end 

위의 예는 ABC Inc.의 정보를 나타냅니다

company.name => "ABC" 
company.ceo.past => "John Henry" 
company.ceo.present => "Amy Warren" 

나는 다음을 구현할 수있는 방법 작업을 통해 회사 및 회사의 CEO 이름이 마지막 버전으로 재설정됩니다.

+1

이것에 대한 업데이트가 있습니까? – Robin

+1

나는 또한 동일한 문제가있다 – eshaiju

답변

1

CEO의 경우 회사에서 수명이 다 된 CEO가 몇 명 있지만 특정 기간 동안 만 CEO가 있기 때문에 has_many를 제거하기 위해 연결을 다시 모델링 할 수 있습니다.

이 구현은 CEO 및 회사의 ID와 유효 기간으로 구성된 조인 테이블의 has_one 일 수 있습니다.

유익한 부작용은 한 사람을 다른 CEO와 두 번이나 회사의 CEO로 두는 것이 쉬운 일이 아니며 도메인에서 쉽게 찾아 볼 수 있습니다. 이 문제를 처리하는 방법에 대한

0

지침은 README에서 찾을 수 있습니다

https://github.com/airblade/paper_trail/blob/master/README.md#associations는 기본적으로 rails generate paper_trail:install --with-associations 옵션 설치시 또는 수동으로 작동 할 수 중 하나를하는 version_associations 테이블을 만들어야합니다.

어떻게 작동하는지에 대한 자세한 내용은 Github의 전체 설명서를 읽어 보시기 바랍니다.

+0

이것은 전혀 대답하지 않는다. 방금 작성한 지침을이 주제에 복사하여 붙여 넣었습니다. – dane

+0

@dane 아마도 질문을 편집하고 OP가 요구하는 것이 무엇인지를 명확히하여 저와 다른 사람들을 도울 수 있습니까? –

관련 문제