2010-08-07 13 views
7
Persisting

Zeit einen Einkaufswagen zu entwickeln, um den Warenkorb die Optionen für persistierende, wie ich sie sehe, sind:einen Einkaufswagen in Ruby on Rails

  1. Shop das gesamte Warenkorb Objekt in einer Session Tabelle.
  2. Speichern Sie das gesamte Einkaufswagenobjekt in einer Cookie-Sitzung.
  3. Haben Sie eine Warenkorb-Tabelle und speichern Sie die Einkaufswagen-ID in einer Cookie-Sitzung.

Habe ich irgendwelche verpasst? Welches ist das Beste, um mit zu rollen?

Dank

+1

Mit 3 #, müssen Sie den Cookie zu schützen. Andernfalls ist es möglich, die Einkaufswagen-ID im Cookie zu ändern, um andere Einkaufswagen zu "kapern". Der Standardsitzungsspeicher in Rails 3 ist CookieStore, der manipulierte Cookies ablehnt. – randomguy

Antwort

10

# 3 ist wahrscheinlich die beste Wahl, weil, dass Sie die Freiheit/Flexibilität. Eines Tages möchten Sie, dass Benutzer ihre Einkaufswagen zwischen den Sitzungen speichern können. Oder Sie möchten die Warenkorbhistorie für Ihre Benutzer speichern. Oder Sie entscheiden sich für eine Analyse der Einkaufswagendaten.

# 2 ist eine schlechte Lösung wegen der Cookie-Größenbeschränkungen für Browser. Sie stellen sich auf böse Bugs ein, bei denen große Einkaufswagen vor allem in älteren Browsern beschädigt werden.

5

Schauen Sie sich die Railscasts-Episoden an # 141- # 146 ... Hat mir sehr geholfen mit Einkaufswagen/Checkout (obwohl die Episoden nicht direkt auf Ihre Frage eingehen, werden Sie eine einfache Methode der Implementierung sehen ein Einkaufswagen).