运行(blah)返回Datamapper对象(LuckEvent)的函数后,我的代码将其存储在Rack会话中。这是在HAML视图中读取的,该视图始终返回DataMapper :: Collection 获取LuckEvent的代码:
puts "|LX| Jumped, getting event"
session["lastLDEvent"] = ldg.get_event
puts "|LX| Jump event: #{session["lastLDEvent"].inspect}" #Consistently returns the right value.
在HAML中查看它的代码:
.w3-container.w3-pale-blue
= session["lastLDEvent"].class if session["lastLDEvent"] #Consistently returns DataMapper::Collection.
将其切换为.inspect
会一直返回[]。
答案 0 :(得分:0)
我会尝试将get_event
的结果投射到Array
。在会话中存储DataMapper::Collection
可能存在问题。
session["lastLDEvent"] = ldg.get_event.to_a
如果这不起作用,您可能需要存储ID,然后重新查询事件。
session["lastLDEvent"] = ldg.get_event.map(&:id)