0

連絡先をクラスに関連付けようとしていますが、2つの異なるタイプとして関連付けています。Current_classesおよびInterested_classes。

多態性を有効にする必要があることはわかっていますが、どこで有効にする必要があるかわかりません。

これは私が今持っているものです

class CreateClasses < ActiveRecord::Migration
  def self.up
    create_table :classes do |t|
      t.string :class_type
      t.string :class_name
      t.string :date

      t.timestamps
    end
  end

  def self.down
    drop_table :classes
  end
end

class CreateContactsInterestedClassesJoin < ActiveRecord::Migration
  def self.up
    create_table 'contacts_interested_classes', :id => false do |t|
      t.column 'class_id', :integer
      t.column 'contact_id', :integer
    end
  end

  def self.down
    drop_table 'contacts_interested_classes'
  end
end

class CreateContactsCurrentClassesJoin < ActiveRecord::Migration
  def self.up
    create_table 'contacts_current_classes', :id => false do |t|
      t.column 'class_id', :integer
      t.column 'contact_id', :integer
    end
  end

  def self.down
    drop_table 'contacts_current_classes'
  end
end

そして、連絡先モデルの内部に、このようなものが必要です。

class Contact < ActiveRecord::Base
  has_and_belongs_to_many :classes, :join_table => "contacts_interested_classes", :foreign_key => "class_id" :as => 'interested_classes'
  has_and_belongs_to_many :classes, :join_table => "contacts_current_classes", :foreign_key => "class_id" :as => 'current_classes'
end

私は何が間違っているのですか?

4

1 に答える 1

0

私はあなたに答えを与えることができますが、この記事をよく読んでくださいレールガイドからのポリモーフィックアソシエーション

于 2010-05-24T10:29:01.820 に答える