Spree Commerce Vendors Listing Page [NoMethodError : undefined method `each' for #<Class:...>]

Spree Commerce Vendors Listing Page [NoMethodError : undefined method `each' for #<Class:...>]

我正在创建一个视图,列出所有使用 Spree Multi Vendor extension for Spree Commerce 的供应商。

我的 index.html.erb 模板:

<% @vendors.each do |vendor| %>
    <h2>
      <%= vendor.name %>
    </h2>
<% end %>

我的 stores_controller.rb 控制器:

module Spree
    class StoresController < Spree::StoreController  
      def index
        @vendors = Spree::Vendor
      end
    end
end

我遇到的错误:

NoMethodError in Spree::Stores#index

Showing /myapp/app/views/spree/stores/index.html.erb where line #36 raised:

undefined method `each' for # < Class:0x00007fe3f5570a40 >

Line #36 : <% @vendors.each do |vendor| %>

如何在我的控制器中正确实例化 Vendor Model,以便我可以使用它的方法并在我的商店的视图中访问它的属性?

Spree::Vendor 只是一个模型 class。您可以将其视为任何其他模型 - UserProduct

在这种情况下,您应该调用 Spree::Vendor.allSpree::Vendor.active 来获取记录。