Trilhos - Favoritos polimórficos (o usuário pode escolher modelos diferentes)

Estamos tentando adicionar vários objetos favoráveis, nos quais um usuário pode adicionar muitos objetos diferentes aos favoritos, mas não sabemos ao certo como fazê-lo funcionar.

Aqui está o modelo favorito:

class Favorite < ActiveRecord::Base
  # belongs_to :imageable, polymorphic: true
  belongs_to :user
  belongs_to :category
  belongs_to :business
  belongs_to :ad_channel
  belongs_to :location
  belongs_to :offer
end

O modelo do usuário:

class User < ActiveRecord::Base
  has_many :favorites, as: :favoritable
end

E um exemplo de modelo de algo que pode ser favorito:

class Category < ActiveRecord::Base
  has_many :sub_categories
  has_many :ad_channels
  has_many :offers
  belongs_to :favoritable, polymorphic: true
end

Não tenho certeza se isso está configurado corretamente, de modo que seria a primeira coisa em que precisamos de feedback.

Em segundo lugar, como "favorecemos" algo para um usuário?

Isto é o que tentamos até agora sem êxito:

@user.favorites << Category.find(1)

EDIT: Também será necessário uma tabela de banco de dados favoritos para gravar as coisas? Este é um conceito bastante novo para nós.

questionAnswers(1)

yourAnswerToTheQuestion