2012-12-31 33 views
0

所以作爲一個rails新手,我不能工作這一個。我有一個學生模式,有很多拘留,學校和停課。我希望能夠創建,展示並鏈接到學生展示頁面中的編輯。如果學生只有一次拘留,那不是問題。但是,如果有多個,edit_student_detention_path會將所有學生的detention_id放入url中。可能是一個簡單的解決方法,但我很想念它。編輯顯示所有ID的路徑URL?

學生控制器:

def show 
@student = Student.find(params[:id]) 
@detention = @student.detentions.new 
@detentions = @student.detentions.all 
@inschool = @student.inschools.new 
@inschools = @student.inschools.all 
@suspension = @student.suspensions.new 
@suspensions = @student.suspensions.all 

respond_to do |format| 
    format.html # show.html.erb 
    format.json { render json: @student } 
end 
end 

學生顯示視圖:

<% @student.detentions.each do |detention|%> 

    <tr> 
<td><%= detention.detention_date %></td> 
<td><%= detention.administrator %></td> 
<td><%= link_to "Edit", edit_student_detention_path(@student, @detentions) %></td> 
<td><%= link_to "Letter", student_detention_path(@student, @detentions) %></td> 
</tr> 
<% end %> 

回答

0

不能確定你到底想要什麼,但如果你想鏈接到拘留的編輯視圖,只是改變你的從的link_to:

<%= link_to "Edit", edit_student_detention_path(@student, @detentions) %> 

到:

<%= link_to "Edit", edit_detention_path(detention) %> 
+0

當我這樣做,我得到一個「未定義的方法'edit_detention_path'」 – bdorkton

+0

好吧,我以爲你以前已經產生拘留作爲資源:與控制器和路線。如果你有一個控制器的拘留,也許你需要在config/routes.rb中設置一些路由,如下所示:'resources:detentions' – Raindal

+0

感謝您的耐心等待。我的路線設置爲「資源:學生做資源:拘留結束」。我認爲控制器將所有學生的detention_ids都放在URL中,但我不知道如何解決。 – bdorkton