0

我得到两个表,一个叫Teacher,另一个叫Teacher_Type。 A Teacher可以有许多Teach_Types,即约翰史密斯先生是模块负责人,导师和讲师(3位教师类型)。TeachersController中的ActiveRecord :: StatementInvalid#show和SQLite3 :: SQLException:没有这样的列错误

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

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,就像这样: SCreenshot1

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

enter image description here

我创造了一些Teachers过,但离开了Teacher_Types空的,所以即使当我尝试去localhost:3000/teachers/3,我收到以下错误信息(包括SQLite的浏览器,看看有什么Teachers表内)

enter image description here

所以我不知道我要去哪里错在这里......

我的关联是不正确的?

+0

做ü有'teachers_teacher_types'或'teacher_types_teachers'表? – codeit 2013-03-08 19:22:29

回答

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 
+0

那么我需要改变任何与我的协会?即两个模型上的'belongs_to_and_has_many'? – omarArroum 2013-03-08 19:24:58

+0

不,你的关联是正确的..你有表'teachers_teacher_types'或'teacher_types_teachers'? – codeit 2013-03-08 19:28:04

+0

我刚刚根据错误信息创建了'teacher_types_teachers',它工作正常。非常感谢;-) – omarArroum 2013-03-08 19:37:34

0

我觉得你的模型应该是这样的:

班主任<的ActiveRecord :: Base的 belongs_to的:teacher_types attr_accessible:FIRST_NAME,:姓氏,:teacher_type_ids 结束

TeacherType <的ActiveRecord :: Base的 的has_many:教师 attr_accessible:标题 结束

如果正确给你试试吧???

相关问题