0

2 つのテーブルを取得しました。1 つは と呼ばれTeacher、もう 1 つは と呼ばれTeacher_Typeます。Aは複数Teacher持つことができます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

あなたのモデルは次のようなものであるべきだと思います:

class Teacher < ActiveRecord::Base の属し先 :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 に答える