默认的 Spree Commerce 具有“类别”和“品牌”分类。我已经生成了一个扩展,它创建了一个自定义测试页面,其中显示了分类法,但顺序相反。这仅用于练习目的。
自定义测试页面“/testing”似乎正确路由并使用视图testing.html.erb
,但我无法加载方法中定义的分类法实例。它给了我一个undefined method each for nil:NilClass
.
注意:我只在扩展程序中工作,而不是在 spree 应用程序中工作。
spree_custom_extension/controllers/spree/home_controller_extension.rb
module Spree
HomeController.class_eval do
def testing
@taxonomies = Spree::Taxonomy.includes(root: :children).reverse_order
end
end
end
spree_custom_extension/views/spree/home/testing.html.erb
<% @taxonomies.each do |taxonomy| %>
<%= taxonomy.name %><br>
<% end %>
spree_custom_extension/config/routes.rb
Spree::Core::Engine.routes.draw do
get '/testing' => 'home#testing'
end