2012-06-24 2 views
0

나는 다음과 같은 액션/객체에서 작동하는 form_for 있습니다는 형태의 레일에 자원을 중첩 지속

def new 
    @student = Students.new 
    end 

또한, 양식

schools/4/students/new 

은 무엇입니까 다음 경로에서 호출을 학교의 이드 (이 경우 4)를 db의 새로운 학생 기록에 저장하는 가장 좋은 방법은 무엇입니까? 나는 다음 요청에서 잃어 버리기 때문에 그에게 @student 오브젝트를 미리로드 할 수 없다. 나는 hidden_field를 형식으로 사용했지만 레일에 더 나은 방법이 있어야합니다. 고맙습니다.

답변

1
students

컨트롤러 :

def new 
    @school = School.find(params[:school_id]) 
    @student = @school.students.build 
end 

def create 
    @school = School.find(params[:school_id]) 
    @student = @school.students.build(params[:student]) 
    if @student.save 
    ... 
    else 
    ... 
    end 
end 

형태 :

<%= form_for([@school, @student]) do |f| %> 
... 
<% end %> 
관련 문제