0
녀석의 ID를 기반으로 여러 테이블에 레코드를 추가 내가 3 개 테이블을했습니다 :첫 번째 테이블
- 프로젝트 {ID, 이름, 소유자, ....}
- ProjectMilestones {ID를, 나는 새 프로젝트를 만들면 PROJECT_ID는, 이름은 ....}
- UserProjects {ID는, PROJECT_ID는 ....}
여기에, 나는 PROJECT_ID(@@ IDENTITY를 가져올 것이다) 열 및 ProjectMilestones 및 UserProjects 테이블에이 ID가있는 테이블에 새 행을 만듭니다. 내 코드는 다음과 같습니다.
def create
ActiveRecord::Base.transaction do
# Instantiate a new object using form parameters
@project = Project.new(params[:project])
if @project.save
# if project saves, Create a new insteance into User Projects
@userproject=UserProject.new(
:project_id=>@project.id
)
@userproject.save
# Create a new insteance into ProjectMilestone
@projectmilestone=ProjectMilestone.new(
:project_id=>@project.id,
:milestone_id=>12,
:milestone_date=>@project.created_at
)
@projectmilestone.save
flash[:notice] = "A new project has been created successfully"
redirect_to(:action => 'list')
else
# If save fails, redisplay the form so user can fix problems
render('new')
end
end
end
잘 처리되고 있습니다. 이것에 대해 최적화 된 접근법이 있는지 알고 싶습니다. 비즈니스 로직을 모델로 이동하고 프로젝트가 관련된 모든 레코드를 만들거나 실패하게 할 수 있습니다.