Actuellement, j'ai deux classes Theme
et Offer
mappées par une table de jointure themes_offers
contenant theme_id
et offer_id
.Rails ActiveRecord: Comment puis-je donner un ordre personnalisé pour la table de jointure has_and_belongs_to_many relationship?
J'ai besoin de mettre en œuvre une vue avec l'ordre personnalisé des offres pour chaque thème.
L'idée actuelle est que je dois ajouter une colonne sur la table, et de créer une nouvelle classe activerecord mappée sur la table:
class AddOrderToThemesOffers < ActiveRecord::Migration[5.0]
def up
add_column :themes_offers, :order, :integer
# mark order for each existing orders
add_index :themes_offers, [:theme_id, :order], unique: true, name: 'index_offer_order_on_theme'
end
def down
remove_index :themes_offers, 'index_offer_order_on_theme'
remove_column :themes_offers, :order, :integer
end
end
Y aurait-il une meilleure approche? Le problème que j'ai avec cette solution est qu'il sera difficile d'implémenter l'interface activeadmin pour gérer les commandes.