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.