Ассоциирование моделей с полиморфным - PullRequest
0 голосов
/ 24 мая 2010

Я пытаюсь связать контакты с классами, но как два разных типа. Текущие_классы и Заинтересованные_классы.

Я знаю, что мне нужно включить полиморфизм, но я не уверен, где его нужно включить.

Это то, что у меня есть на данный момент

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

Что я делаю не так?

1 Ответ

0 голосов
/ 24 мая 2010

Я могу дать вам ответ, но лучше прочитайте этот пост Полиморфные ассоциации из руководства по рельсам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...