Ich versuche simple_form
für ein Produkt/Cart-Szenario einzurichten, aber ein wenig anders als das typische Szenario. Mein Display muss ALLE verfügbaren Produkte auflisten und für jeden eine Menge eingeben. Beim Speichern sollten die cart_items cart_id
, product_id
und qty
nur für die Artikel speichern, für die eine Menge angegeben ist.Rails Simple Form Association für alle möglichen Objekte
class Cart < ApplicationRecord
has_many :cart_items
has_many :products, through: :cart_items
accepts_nested_attributes_for :cart_items
end
Warenkorb Artikel:
class CartItem < ApplicationRecord
belongs_to :cart
belongs_to :product
end
Produkte: Wenn es leer oder Null ist, sollte es nicht zu cart_items
Warenkorb hinzugefügt werden
class Products < ApplicationRecord
has_many :cart_items
has_many :carts, through: :cart_items
end
Ich versuche, meine Form Anzeige zu haben, wie zum Beispiel: [ x ] (Qty) Product Name [ x ] (Qty) Product Name [ x ] (Qty) Product Name [ x ] (Qty) Product Name
Ich bin nicht sicher, wie das zusätzliche Feld für die Menge f.association :cart_items, collection: Products.all()
mit bekommen, und ich versuchte, diese:
<%= f.simple_fields_for :cart_items do |fa| %>
<%= fa.association :product, as: :select %>
<%= fa.input :qty %>
<% end %>
Aber die zeigt nur vorhandene Verknüpfungen an und zeigt das Produkt in einer Auswahlliste an, während ich nur alle Produkte auflisten und deren zugehörige Menge anzeigen möchte.
Gibt es eine nette und schöne "Rails-y" -Methode, die ich übersehen habe, oder muss ich mehr manuelle Manipulation in meinem Controller und in meinen Ansichten vornehmen? Ich benutze Schienen 5.
Danke - das macht Sinn! (vorherige Seite Frage entfernt hier, wie ich die Antwort durch googeln gefunden) – Ryan