หน้ารายชื่อผู้ขาย 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