2012-06-24 64 views
0

我有以下動作/對象上運行的的form_for:堅持嵌套資源的Rails與形式

def new 
    @student = Students.new 
    end 

此外,形式從以下路徑

schools/4/students/new 

所謂將學校的id(在這種情況下是4)保存到db中的新學生記錄的最好方法是?我無法預先加載他的@student對象,因爲它在下一個請求中丟失。我在表單中使用了hidden_​​field,但在rails中必須有更好的方法。謝謝。

回答

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 %>