You are describing a "has_many :through" relationship.
class FlavoursPacks < ActiveRecord::Base belongs_to :flavour belongs_to :pack end
class Flavour < ActiveRecord::Base has_many :flavours_packs has_many :packs, :through => :flavours_packs end
class Pack < ActiveRecord::Base has_many :flavours_packs has_many :flavours, :through => :flavours_packs end
Then you can access flavours_packs from either direction and call methods on those objects.
somePack.flavours_packs[0].article_number
-- James