2011-02-16 2 views
1
Project (id) 
Permission (project_id, user_id) 

를 구축, 나는 다음과 같은 오류 얻을 : 액티브 :: RecordNotSaved (부모가 저장하지 않는 한 당신은 만들 호출 할 수 없습니다) :레일 - 프로젝트를 저장하려고 할 때 중첩 된 모델

컨트롤러 :

@project = current_user.projects.new(:name => params[:project][:name]) 
@project.permissions.build(:user_id => current_user.id) 

respond_to do |format| 
    if @project.save 
    ...... 

제안 사항? Thansk

+0

:autosave => true을 설정해보십시오? –

+0

미안 해요 @project 여야합니다. 그 질문을 입력 그냥 오타되었습니다 ... – AnApprentice

답변

2

은 협회 @의 그룹 '가 정의`

class Project < ActiveRecord::Base 
    has_many :permissions, :autosave => true 
    … 
2

current_user.projects.new 프로젝트의 경우 user_id을 설정하지 않은 경우 대신 current_user.projects.build을 사용해보십시오.

+0

'current_user.id'가'nil' 인 경우 그것은 단지 프로젝트 인스턴스의'user_id'에 nil을 할당 할 것입니다. – ybakos

+0

이제 # new 및 #build가 별칭임을 알고 있습니다. 그래서 제 대답은 사실이 아닙니다. –