Страница со списком поставщиков 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 поднята:

неопределенный метод "каждый" для # ‹ Class:0x00007fe3f5570a40 >

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

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


person Naourass Derouichi    schedule 25.06.2019    source источник


Ответы (1)


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

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

person MrShemek    schedule 25.06.2019
comment
Спасибо чувак ! У вас есть идеи, как получить объект поставщика, извлекая его имя из URL-адреса? stackoverflow .com/questions/56766442/ - person Naourass Derouichi; 26.06.2019