0

我有两张桌子,一张叫Teacher,另一张叫Teacher_Type。ATeacher可以有很多Teach_Types,即 John Smith 先生是模块负责人、导师和讲师(3 种教师类型)。

我在它们和它们各自的模型之间有以下关联:

class Teacher < ActiveRecord::Base
 has_and_belongs_to_many :teacher_types
 attr_accessible :first_name, :last_name, :teacher_type_ids

class TeacherType < ActiveRecord::Base
  has_and_belongs_to_many :teachers
  attr_accessible :title
end

因此,现在当我尝试创建一个附加 Teacher了许多的新对象时,如下所示:Teacher_Types屏幕截图1

但是,当我按下“创建教师”按钮时,我收到以下错误消息:

在此处输入图像描述

Teachers之前创建了一些,但留下了Teacher_Types空的,所以即使我尝试转到localhost:3000/teachers/3,我也会收到以下错误消息(包括 SQLite 浏览器以查看Teachers表内的内容)

在此处输入图像描述

所以我不确定我在哪里出错了......

我的关联不正确吗?

4

2 回答 2

1

您需要创建名为teachers_teacher_types

class CreateTeachersTeacherTypes < ActiveRecord::Migration
  def change
    create_table :teachers_teacher_types, :id => false do |t|
      t.integer  :teacher_id
      t.integer :teacher_type_id
    end
  end
end
于 2013-03-08T19:16:14.397 回答
0

我认为你的模型应该是这样的:

类教师 < ActiveRecord::Base belongs_to :teacher_types attr_accessible :first_name, :last_name, :teacher_type_ids end

TeacherType < ActiveRecord::Base has_many :teachers attr_accessible :title end

试试看它是否适合你???

于 2013-03-08T19:12:19.670 回答