(阿根廷,我不能正确格式化我的问题的意见,所以我必须使用一个答案。小熊请与我,因为我不认为这回答你的问题呢。)
我不不认为你的模型设置正确,以实现这一点。在你所问的场景中,学生和成绩似乎处于多对多的关联中。即一个学生有很多标题,但是一个标题有很多学生,都是通过评分(这是你的关联模型)。我理解这个正确吗?
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