2011-01-20 3 views
1

관련 데이터와 함께 항목 복제/복제와 관련하여 도움이 필요합니다. 제출자의 세부 정보, 메모 및 여러 테이블에있는 기타 관련 정보가있는 제출이 있습니다. ruby ​​on rails - 관련 모델 데이터와 함께 엔트리 복제

나는 아래의 코드를 사용하여 시도 :

def duplicate1 
    submission_to_dup = Submission.find(params[:id]) 
    new_submission = Submission.create(submission_to_dup.attributes) 
    end 

    def duplicate2 
    new_submission = Submission.create(Submission.find(params[:id]).clone); 
    end 

을하지만 두 방법은 ID 또는 단체 않고, 부모 개체의 단순 복사본을 할 것으로 보인다.

관련 데이터와 함께 레코드를 복제하는 방법이 있습니까?

감사 복제하지 않습니다 액티브의 개체를 복제 당신의 소중한 도움 :

+0

ID를 포함하는 사본을 만들어야하는 이유에 대해 더 잘 설명 할 수 있다면 귀하의 질문에 쉽게 답변 할 수있을 것입니다. –

+0

관련 데이터와 함께 레코드를 복제하고 ID (기본 ID)를 수동으로 할당하려고합니다. – Kim

+0

내가 게시 한 위의 방법은 단순히 기본 모델의 데이터 만 복사하고 관련 모델의 데이터는 무시하기 때문에 작업을 수행하지 않는 것처럼 보입니다. – Kim

답변

1

사전에 많은 : 아이디, 그것은 고유 한 기본 키의 B/C. 그리고 그 기본 키는 그 객체의 연관에있는 외래 키 여야하기 때문에, 당신은 그것들을 잃어 버릴 것입니다. 내가 중복 레코드를 생성하는 생각할 수있는 유일한 방법은 같은 것을 할 수 있습니다 :

def duplicate_record 
    rec = Submission.find(params[:id]) 
    new = Submission.new(:attr => rec.attr) 
    if new.save 
    new.update_attributes(:nested_attr => {:attr => rec.nested_attr.attr}) 
    else 
    something else 
    end 
end 

을하지만 당신이 원하는 것 내가 왜 생각할 수 없다. 중복 된 기록을 유지하려고 대부분의 시간을 보내고 있습니다 내 데이터베이스 중.

어쨌든 도움이되기를 바랍니다.