Ruby on rails 以编程方式生成的Spree分类单元在管理中不显示树
我试图在Ruby脚本(a la seeds.rb)中以编程方式生成Spree Commerce分类法。在面向客户的产品页面中会显示分类,但在管理页面中不起作用Ruby on rails 以编程方式生成的Spree分类单元在管理中不显示树,ruby-on-rails,ruby,spree,taxonomy,Ruby On Rails,Ruby,Spree,Taxonomy,我试图在Ruby脚本(a la seeds.rb)中以编程方式生成Spree Commerce分类法。在面向客户的产品页面中会显示分类,但在管理页面中不起作用 分类法的“树”视图显示根节点,但没有子节点 在产品编辑页面上,我无法添加任何分类单元 下面是一个例子: taxonomy_stones = Spree::Taxonomy.where(:name => 'Gemstone Type').first_or_create tax_stones = Spree::Taxon.where
- 分类法的“树”视图显示根节点,但没有子节点
- 在产品编辑页面上,我无法添加任何分类单元
taxonomy_stones = Spree::Taxonomy.where(:name => 'Gemstone Type').first_or_create
tax_stones = Spree::Taxon.where(name: "Gemstone", parent: nil, taxonomy: taxonomy_stones).first_or_create
tax_diamond = Spree::Taxon.where(name: "Diamond", parent: tax_stones, taxonomy: taxonomy_stones).first_or_create
tax_fancy_yellow = Spree::Taxon.where(name: "Fancy Yellow Diamond", parent: tax_diamond, taxonomy: taxonomy_stones).first_or_create
tax_fancy_pink = Spree::Taxon.where(name: "Fancy Pink Diamond", parent: tax_diamond, taxonomy: taxonomy_stones).first_or_create
当我运行此操作时,数据库中会出现分类法和分类单元的条目。我能够以编程方式将产品与分类单元关联:
product_BL212.taxons << tax_diamond
product\u BL212.Taxon调用Spree::Taxon.rebuild添加分类单元后,代码>解决了这个问题。我在使用代码时遇到了类似的问题
Spree::Taxonomy.find_or_create_by(name:'Brands')
Spree::Taxon.find_or_initialize_by(name:'brand_name').update(taxonomy: Spree::Taxonomy.find_by(name:'Brands'))
正在运行Spree::Taxon.rebuild代码>未解决该问题。我发现创建分类法也会创建一个分类单元,我必须在父列中为我创建的新分类单元使用相关分类单元的ID
所以
不得不改成
Spree::Taxon.find_or_initialize_by(name:'brand_name').update(taxonomy: Spree::Taxonomy.find_by(name:'Brands'), parent: Spree::Taxon.find_by(name:'Brands'))
Taxon.parent属性需要根对象
例如:
t=Spree::Taxonomy.create(名称:“季节”)
tt=Spree::Taxon.create(名称:“Winter”,分类法:t,父:t.root)
Spree::Taxon.find_or_initialize_by(name:'brand_name').update(taxonomy: Spree::Taxonomy.find_by(name:'Brands'), parent: Spree::Taxon.find_by(name:'Brands'))