2013-03-08 100 views
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:標題 結束

如果正確給你試試吧???

相關問題