2015-12-10 2 views
1

В моем приложении я использую драгоценный камень spree. Я хочу хранить product_id и taxon_id в таблицах spree_products_taxons. Но когда я создаю, он показывает выше ошибку. Мой код подобенПоказать ошибку "uninitialized constant Spree :: ProductTaxon" при создании строки spree_products_taxons

def import 
    require 'csv' 
    file = params[:file] 
    CSV.foreach(file.path, headers: true, encoding:'iso-8859-1:utf-8') do |row| 

    @prod = Spree::Product.new() 
    @prod.name = row["name"] 
    @prod.shipping_category_id = row["shipping_category_id"] 
    @prod.description = row["description"] 
    @prod.available_on = row["available_on"] 
    @prod.meta_description = row["meta_description"] 
    @prod.meta_keywords = row["meta_keywords"] 
    @prod.tax_category_id = row["tax_category_id"] 
    @prod.shipping_category_id = row["shipping_category_id"] 
    @prod.promotionable = row["promotionable"] 
    @prod.meta_title = row["meta_title"] 
    @prod.featured = row["featured"] 
    @prod.supplier_id = row["supplier_id"] 
    @prod.master.price = row["master_price"] 
    @prod.master.cost_price = row["cost_price"] 
    @prod.master.sku = row["sku"] 
    @prod.master.tax_category_id = row["tax_category_id"] 
    @prod.save! 
    @prod_taxon = Spree.ProductTaxon.create(taxon_id: row["taxon_id"], product_id: @prod.id) 
    end 
    redirect_to admin_products_path, notice: "products imported." 
end 

ответ

0

Основываясь на последних Spree::Taxon model и Spree::Product model от их GitHub repository, похоже, что вы должны быть в состоянии заменить эту часть кода:

@prod.save! 
@prod_taxon = Spree.ProductTaxon.create(taxon_id: row["taxon_id"], product_id: @prod.id) 

с этим (непроверенные)

@prod.save! 
@prod_taxon = Spree::Taxon.find(row["taxon_id"]) 
@prod.taxons << @prod_taxon 

Надеюсь, что это поможет!

+0

Когда я применил это показывает «неизвестный атрибут» taxon_id 'для Spree :: Taxon. " – vivek

+0

@vivek еще раз посмотрел на модель и отредактировал мой ответ, посмотрим, работает ли это – Herk

+0

да, это работает ... спасибо Herk – vivek

Смежные вопросы