0

我有以下型号:

Student has_many :subjects, :through => :classes

Subject has_many :students, :through => :classes

Class belongs_to :subject
      belongs_to :student

模型类有一个额外的属性(在主题和学生表的外键中)称为级别。

基本上我希望能够有一个表格,让学生选择一个主题并将该主题与其记录相关联。所以,我有这个:

ClassesController < ApplicationController

def new
 @list_of_subjects = Subject.all
 # What should I do here?
end

我的问题是:我应该如何为表单创建对象?它应该来自哪个模型,学科、学生或班级?我希望能够在班级表中创建一条记录,将学生和学生选择的科目联系起来,但我不知道我是否做错了。

谢谢

4

1 回答 1

0

我不认为你可以创建一个名为的模型,Class因为它是一个关键字,但这既不是这里也不是那里......

首先,我认为应该使用您的控制器和视图,Student因为选择这些东西的是学生。接下来,我认为您想要做的是添加accepts_nested_attributes_for :class您的Student模型,它允许您ClassStudent.

你想做的事情听起来有点像我想做的事情。我在那里有我的完整代码。

使用嵌套属性轻松选择表单中的关联

我后来也在这个问题中对其进行了一些改进,以使代码不那么可怕:

Rails:如何在构建之前添加或插入关联?

我知道已经晚了,但我希望这会有所帮助。

于 2012-12-10T16:50:49.380 回答