2012-06-10 2 views
2

'a, b, c, d, e, f, g'필드가있는 '템플릿'이라는 모델이 있고 "보고서"모델이있는 경우 '템플릿'에 '파랑, 빨강, 금, 녹색, a, b, c, d, e, f, g'과 동일한 필드가있는 경우)한 필드에서 다른 필드로 동일한 필드가 포함 된 다른 필드로 복사

보고서에 템플릿을 선택할 수있는 드롭 목록이 있습니다.이 목록의 값은 템플릿 ID가됩니다. 따라서 보고서의 만들기 작업에서 새 보고서 개체를 만들고 ID별로 선택한 템플릿을 찾습니다.

@report = Report.new(params[:report]) 
@template = find(params[:report][:template_id]) 

이 시점에서 @report 개체가 모든 필드 t @template 객체는 @template의 값을 @report 객체로 복사하는 방법이 있습니까?

감사합니다. 레일 2.3.5/루비 1.8.7

답변

3

간단한 방법 :

@report = Report.new(params[:report]) 
@template = find(params[:report][:template_id]) 
@template.attributes = @report.attributes #this copies fields from report to template 
+0

하 - 감사합니다. 이전에는 생각해 본 적이 없었지만 "create"액션에서 Rails는 insert 문으로 'id'필드를 보내지 않을 정도로 똑똑합니다. ". save"할 때 레일스가 삽입물을 가진 ID를 넘겨서는 안되는 것을 결정하기 위해 무엇을보고 있는가? – Reno

+1

복사 할 필드는'''attr_accesible''' 문에 정의 된 필드뿐임을 고려하십시오. – Cacofonix

관련 문제