如何将重要会话信息视为模型?
我开始玩弄它,其中一些有用。但我不确定我错过了什么?有谁知道一个好的起点或在哪里可以找到一些好的例子?
另外,我能够使用模型来设置会话变量,但是从模型中获取它们而不是总是使用session [:blah] ...如何从模型中检索它们呢?
class Cart
attr_reader :items
def initialize(session)
@session = session
@session[:cart] ||= []
@items ||= session[:cart]
end
def add_rooms(new_rooms,startdate,days)
#remove 0 values
new_rooms.delete_if {|k, v| v == "0" }
rooms = []
new_rooms.each do |k, v|
#rname = Room.find(k)
#night = Available.find_by_room_id(k)
rooms << {:room_id => k, :people => v, :no_days => days, :startdate => startdate}
end
@session[:cart] = rooms
#@items = rooms
end
end
答案 0 :(得分:2)
这种方法需要考虑一些问题
答案 1 :(得分:1)
答案 2 :(得分:1)
这种类型的东西适合我;
def set_order_id(i)
@cart_session[:order_id] = i
end
def has_order_id?
@cart_session[:order_id]
end
def order_id
has_order_id?
end
答案 3 :(得分:1)
您只需要一个从会话中返回所需数据的方法。
def blah
@session[:blah]
end
如果你需要很多这些,我会创建一个插件,使用与attr_reader类似的方法扩展Class。像
这样的东西session_reader :blah