我有一个购物车,其中包含许多购物车商品和价格或订单。它记住用户在购物车中选择,但尚未存储到数据库中。我该怎么做才能存储这些记录。
购物车有很多购物车商品。一个购物车项目包含产品数量和产品对象。
答案 0 :(得分:1)
您应该尽可能减少Cookie,因为:
因此,最佳设计是仅在会话中存储相关对象的ID。在您的情况下,您应该只需要购物车ID和用户ID。为所有内容创建数据库支持的ActiveRecord模型(如果您还没有它们),并在过滤器之前使用控制器在每个请求上加载当前对象,如下所示:
class ApplicationController < ActionController::Base
before_filter :load_current_user
private
def load_current_user
@current_user = User.find_by_id(session[:user_id])
end
end
答案 1 :(得分:1)
我不建议这样做,但你仍然可以用
config.action_controller.session_store = :active_record_store
在config / environment.yaml
中然后将对象存储在会话中:
# Note:
# do whatever u want but make sure you save the objects before you store them in the session object.
session[:cart] = @cart
# or you can modify them but don't forget to save the object.
session[:cart].something = 'blabla'
session[:cart].save