Creation Einkaufswagen – Ruby on Rails

Sitzungen

Bevor wir einen Warenkorb für einen Benutzer zur Auswahl von Produkten erstellen können, müssen wir lernen, wie die Sitzungen in Ruby on Rails verwendet werden . Wenn ein Benutzer in unserem virtuellen Geschäft stöbert, wählt er möglicherweise Produkte aus. Normalerweise wird für diese Art von Anwendungen verwendet, dass wir ihn einem virtuellen Einkaufswagen hinzufügen, in dem wir das Produkt, den Preis, die Gesamtkosten des Einkaufs und den Kaufpreis aufbewahren Menge der Produkte, bis es zu einer eventuellen Kaufabwicklung kommt, an der sich der Benutzer für den Kauf entscheidet.

Um dem zu entsprechen, was wir vorschlagen, müssen wir die Produkte, die der Benutzer in unserer Anwendung auswählt, pflegen. Dazu werden wir die Sitzungen verwenden . Mit dieser Implementierung, die Rails erstellt , können wir die Daten verfügbar halten, ohne sie in Datenbanken speichern zu müssen, und sie sind für die Benutzer zugänglich Benutzer, der es über den Browser gestartet hat, der die Verbindung zur Anwendung herstellt, sodass die Tastenkombinationen gespeichert werden und wir sie zur Verfügung haben.

Sehen wir uns ein Beispiel an, wie dieser Code aussieht, und erstellen wir eine neue Methode in unserer Anwendung im Handelscomputer:

 privat def find_cart session [: cart] || = Cart.new ende 

Obwohl es sich um 4 Codezeilen handelt, sind diese ziemlich komplex. Zuerst stellen wir die private Methode bereit. Auf diese Weise vermeiden wir, dass Rails sie als Aktion im Controller zur Verfügung stellen. Dann stellen wir fest, dass wir den bedingten Zuweisungsoperator || verwenden =.

Dieser Operator in der Methode, die es uns ermöglicht, die folgenden Funktionen auszuführen, wenn ein Sitzungs-Hash für den Schlüssel vorhanden ist: cart, dann geben wir seinen Inhalt zurück, andernfalls erstellen wir ein neues Cart-Objekt und weisen es der Sitzung zu, dann geben wir seinen Wert zurück .

See also  So erstellen Sie eine Checkliste in Excel 2016

Erstellen Sie die erforderlichen Tabellen

Nachdem wir den theoretischen Teil des Ansatzes ein wenig gemeistert haben, werden wir uns ein wenig eingehender mit den Funktionen befassen, die wir erstellen müssen. Sobald wir unseren Warenkorb erstellt haben, wissen wir, dass jeder Verkauf den Preis beibehalten muss, zu dem er getätigt wurde. Wenn wir eine Tabelle mit dem Namen line_items erstellen, speichern wir die Zeile der Käuferauswahl und sehen uns den Code an, den wir in unserer Datenbank ablegen müssen:

 drop table falls vorhanden line_items; Erstelle Tabelle line_items ( id int product_id int Menge int unit_price dezimal (10,2) Einschränkung fk_items_product Primärschlüssel (ID) ); nicht null auto_increment, nicht null, nicht null default 0, nicht null, Fremdschlüssel (product_id) verweist auf Produkte (id), Primärschlüssel (ID) ); 

Wie wir in dieser Definition unserer neuen Tabelle sehen können, haben wir eine Referenz für einen Fremdschlüssel hinzugefügt, der das Feld product_id mit dem Feld id der Produkttabelle verknüpft. Diese Beziehung hilft uns beim Generieren des Modells.

Generieren Sie das Modell

Da wir die Tabelle haben, können wir mit ihr interagieren. Dazu müssen wir ein neues Modell generieren, damit wir es in unserer Anwendung verwenden können. Wir werden den folgenden Befehl von unserer Ruby on Rails- Befehlskonsole verwenden.

 depot> ruby ​​script / model LineItem erzeugen Sobald unser Modell generiert ist, fügen wir Folgendes hinzu: [i] app / models / line_item.rb [/ i] Da nicht alle Datenbanken Rails unterstützen, ist die Behandlung explizit. Klasse LineItem <ActiveRecord :: Base Gehört zu: Produkt ende 

Nachdem wir unser Modell und die Tabellen für unsere Anwendung erstellt haben, haben wir nur Teil 2, um mit der Entwicklung fertig zu werden und einen funktionierenden Einkaufswagen zu haben, der als Sprungbrett für weitaus fortgeschrittenere Anwendungen dient.

See also  Installation und Funktionen von Windows Server Core 2008

Wir fahren mit dem Aufbau des Einkaufswagens für unsere Anwendung in Ruby on Rails fort , damit wir weiterhin das Modell sehen, das wir gebaut haben, und sehen wir uns die Erklärung hinter dem Thema an. Rails verwaltet eine Konvention, die es Ihnen ermöglicht, zu bestimmen, wie mit den Beziehungen zwischen Tabellen umgegangen werden soll, nachdem diese explizit deklariert wurden, indem Ihnen mitgeteilt wird, dass unser LineItem-Modell die folgende Codezeile hat: belong_to: product , und die Rails-Engine weiß, dass sie in der Tabelle enthalten sein muss Es gibt ein Feld mit dem Namen product_id.

Erstellung des Warenkorbs

Jetzt generieren wir den notwendigen Code, um unseren Einkaufswagen zu erstellen. Zuerst müssen wir die Methode im Controller unseres Geschäfts implementieren, um Artikel zum Einkaufswagen hinzuzufügen. Zuerst suchen wir diesen Treiber: app / controller / store_controller.rb und erstellen darin die Methode add_to_cart mit dem folgenden Code.

 def add_to_cart product = Product.find (params [: id]) @cart = find_cart @ cart.add_product (Produkt) redirect_to (: action => 'display_cart') ende 

Jetzt müssen wir unsere Cart-Klasse generieren. Diese Klasse ist nicht mit dem ActiveRecord- Modell verknüpft, da sie nicht mit der Datenbank interagiert. Um die Generierung zu vereinfachen, erstellen wir sie manuell in unserem App / Models- Verzeichnis. Dort erstellen wir die Datei cart.rb .

In unserer neuen Datei werden wir Folgendes platzieren:

 Klasse Cart attr_reader: items attr_reader: total_price def initialisieren @items = [] @total_price = 0.0 ende def add_product (Produkt) @items << LineItem.for_product (Produkt) @total_price + = product.price ende ende 

Nachdem dies erledigt ist, gehen wir zu unserem LineItem-Modell und platzieren, was wir brauchen:

 Klasse LineItem <ActiveRecord :: Base Gehört zu: Produkt def self.for_product (Produkt) item = self.new item.quantity = 1 item.product = product item.unit_price = product.price Artikel ende ende 

Lassen Sie uns kurz zusammenfassen, was wir bisher haben. Wir haben bereits die Methode, mit der wir einen Artikel zum Warenkorb hinzufügen können. Dies ist add_to_cart. Dann haben wir den Inhalt unserer Cart- Klasse, mit der wir ein Produkt hinzufügen können, und schließlich können wir in unserer LineItem- Klasse die Werte der Produkte extrahieren, die wir hinzufügen. Wir müssen nur ein paar weitere Elemente implementieren, damit unsere Anwendung funktioniert. Zuerst müssen wir eine Aktion hinzufügen, mit der wir die Ansicht anzeigen und ansonsten generieren können. Dazu fügen wir Folgendes hinzu:

 def display_cart @cart = find_cart @items = @ cart.items ende 

Diese Methode wird in unserem Controller ausgeführt. In unserer Ansicht: app / views / store erstellen wir eine Datei display_cart.rhtml und fügen den folgenden Code ein:

 <h1> Einkaufswagen anzeigen </ h1> <p> Ihr Warenkorb enthält <% = @ items.size%> Dinge. </ p> 

Natürlich funktioniert dies immer noch nicht. Wir müssen einen letzten Schritt hinzufügen. Um unsere neuen Modelle im Kontext der Anwendung zu definieren, gehen wir zu app / controller und sehen eine Datei namens application.rb, in die wir Folgendes einfügen müssen:

 Klasse ApplicationController <ActionController :: Base Modell: Einkaufswagen model: line_item ende 

Damit hätten wir bereits unseren grundlegenden Einkaufswagen, aber das wird uns dazu bringen, ein Endprodukt mit einer vollständig erweiterten Funktionalität zu implementieren. Damit schließen wir dieses Ruby on Rails- Tutorial ab und es ist wichtig zu erwähnen, dass wir den von uns platzierten Code analysieren müssen, um den Grund zu verstehen, warum er funktioniert, und auf diese Weise Qualitätswissen zu generieren.

See also  So beschleunigen und verbessern Sie die Geschwindigkeit der Internetverbindung

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *