Страница со списком поставщиков Spree Commerce [NoMethodError: неопределенный метод `each'для #<Class:...>]

Я создаю представление, в котором перечислены все поставщики, использующие расширение Spree Multi Vendor для 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 в Spree::Stores#index

Показывает /myapp/app/views/spree/stores/index.html.erb, где поднята строка #36:

неопределенный метод `each'для #

Строка № 36: <% @ vendors.each do | vendor | %>

Как я могу правильно создать экземпляр Vendor Model внутри моего контроллера, чтобы я мог использовать его методы и получить доступ к его атрибутам в представлениях моего магазина?

1 ответ

Решение

Spree::Vendor это просто модельный класс. Вы можете думать об этом, как и любая другая модель - User, Product, и т.д.

В этом случае вам следует позвонить Spree::Vendor.all или же Spree::Vendor.active чтобы получить записи.

Другие вопросы по тегам