2016-10-05 1 views
0

J'essaie d'insérer un ensemble de données dans une jonction. Je veux être en mesure de définir l'ensemble de produits par défaut à chaque nouveau marchand qui est créé, puis le commerçant aura des options pour définir la disponibilité de leurs prix en fonction de leurs besoins.Insérer les données dans la table de jonction

J'ai la méthode actuelle définir

def add_products 
    @product = Product.all 
    @product.each do |product| 
    @merchant = MerchantProducts.create!(product_id: product.id, merchant_id: self.id) 
    end 
end 

problème que je reçois est le dessous

uninitialized constant Merchant::MerchantProducts 
+0

essayer avec 'def add_products @product = Product.all @ product.each do | produit | @merchant = :: MerchantProducts.create! (product_id: product.id, marchand_id: self.id) end end' (même s'il n'est pas nécessaire d'assigner la valeur '@ merchant' ici) –

Répondre

0

Sans vos codes modèles, je suppose que vous avez un a et appartient à plusieurs Association. donc vous ne pouvez pas directement effectuer des opérations sur MerchantProducts puisque ce n'est pas un Rails Modèle, à la place, il s'agit d'une table de jointure entre products et merchants alors ce que vous pourriez faire est d'aller chercher le marchand selon la logique de votre application et l'assigner au produit comme et puis enregistrer le produit

def add_products 
    @product = Product.all 
    @product.each do |product| 
    @merchant = #logic here to fetch the merchant 
    product.merchants << @merchant 
    # you will need to save the product in order to create a new record 
    # in the join table 
    end 
end 

Hope it helps