我該怎麼辦時,該用戶之後添加的東西到購物車,離開後重新打開瀏覽器(關閉)軌恢復它的會話,用戶可以購買更多... 現在我有這樣的關閉瀏覽器後保持會話生效。
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :current_cart
private
def current_cart
Cart.find(session[:cart_id])
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
end
而且在命令後銷燬:
def destroy
@cart = current_cart
@cart.destroy
session[:cart_id] = nil
respond_to do |format|
format.html { redirect_to session[:prev_url],
:notice => I18n.t(:empty_card) }
format.json { head :ok }
end
end
但是,我該如何告訴RoR保持這個會話活着?
您需要保留會話cookie,但這通常不是一個好主意。改爲使用基於cookies的技術。 –
@ semir.babajic我會像以前一樣擁有大部分功能,如果我將會話[:cart_id] = cart.id更改爲cookie [:cart_id] = cart.id?那我怎麼能恢復我的購物車? – brabertaser19
在您的數據庫中保存購物車的副本並提供給用戶。 – MiniRagnarok