То, что вы описываете, это «Модели данных», а не «Типы данных». Типы данных = строка, целое число и т. Д. Если это конкретный объект активной записи, это, в частности, модель данных или модель активной записи.
Eimantas указал, что вы описываете 2 отношения "has_many", но не "have_many", как написано в его посте. В его примере закладки называются моделью соединения. Помните, что вы можете помещать другие вещи в модель соединения и использовать их там для выполнения задач. Допустим, вы хотите заказать закладку или выбрать любимый рейтинг - идеальным местом для этого является модель соединения.
Разобранный пример:
class Article < ActiveRecord::Base
has_many :users, :through => :user_bookmarks
end
class UserBookmark < ActiveRecord::Base
belongs_to :user
belongs_to :article
end
class User < ActiveRecord::Base
has_many :user_bookmarks
has_many :articles, :through => :user_bookmarks
end
На что посмотреть после ознакомления с основами:
Счетчики кэшей - если вы делаете подсчеты, они ваши друзья.
Вероятно, гораздо проще и понятнее просто использовать эти две модели соединения, чем пытаться погрузиться в полиморфизм прямо сейчас. После того, как вы это запустите, вы можете исследовать это следующим.