(阿根廷,我不能正確格式化我的問題的意見,所以我必須使用一個答案。小熊請與我,因爲我不認爲這回答你的問題呢。)
我不不認爲你的模型設置正確,以實現這一點。在你所問的場景中,學生和成績似乎處於多對多的關聯中。即一個學生有很多標題,但是一個標題有很多學生,都是通過評分(這是你的關聯模型)。我理解這個正確嗎?
Class has_many :students
has_many :grades
has_many :rubrics, :through => :grade
Student has_many :grades
has_many :rubrics, :through => :grade
belongs_to :class
# A grade is a particular rubric assigned to a student for a particular class
Grade belongs_to :student
belongs_to :rubric
belongs_to :class
Rubric belongs_to :course
has_many :grades
has_many :students, :through => :grade
讓我知道如果我上面的解釋是正確的,我可以用控制器和視圖上的答案跟進。我最近爲另一個項目做了非常類似的事情。
編輯:現在我們已經澄清了這個問題,這裏是我的建議答案。 目標是爲多個學生分配特定課程中的標準。
沒有內置的方法來支持這樣的事情,所以我們將不得不建立記錄和與正確的控制器行爲和表單的關聯。
在等級模型中,我們添加此功能: DEF self.checked(類標識碼,student_id數據,rubric_id) Grade.find(?:全部:條件=> {:=類標識碼>類標識碼,:student_id數據=> student_id數據, :rubric_id => rubric_id})。present? 結束
在的form_for:在RubricsController的創建行動
<%= form_for @rubric do |f| %>
<% for @class.students.each do |student| %>
<%= fields_for :grades do |builder| %>
<%= check_box_tag "grades[" + @class.id.to_s + "][]", rubric.id, Grade.checked?(@class.id, student.id, @rubric.id) %>
<% end %>
<%= f.submit "Save" %>
<% end %>
現在,你應該有一個PARAMS:專欄中,我們創造這樣的事情[:等級]這是關鍵的哈希[:類]其價值應該只是一系列學生ID。現在,您可以創建與這些模型關聯的成績對象,因爲您擁有一個標題ID(@ rubric.id),一個類ID(@ class.id)和一組學生ID。
我希望我沒有擰上面的代碼,因爲我不得不從我目前的實施中改變它。但是查看rails服務器的控制檯日誌應該可以讓你找出提交上面的表單並進行調整時傳遞的參數。
我不認爲你的模型設置正確,以實現這一點。在你所問的場景中,學生和成績似乎處於多對多的關聯中。即一個學生有很多標題,但是一個標題有很多學生,都是通過評分(這是你的關聯模式)。我理解這個正確嗎? – yuklai
即, 類的has_many:學生 的has_many:欄目,:通過=>:級 學生的has_many:欄目,:通過=>:欄目 belongs_to的:類 #A級是分配給學生特定類的特定量規 級belongs_to的:學生 belongs_to的:專欄 belongs_to的:類 專欄belongs_to的:當然 的has_many:學生:通過=>:專欄 讓我知道如果我上面的解釋是正確的,我可以在一個答案跟進控制器和視圖。我最近爲另一個項目做了非常類似的事情。 – yuklai