Datamapper资源成为会话值中的集合

时间:2016-08-30 17:44:36

标签: ruby database sinatra session-cookies datamapper

运行(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会一直返回[]。

1 个答案:

答案 0 :(得分:0)

我会尝试将get_event的结果投射到Array。在会话中存储DataMapper::Collection可能存在问题。

session["lastLDEvent"] = ldg.get_event.to_a

如果这不起作用,您可能需要存储ID,然后重新查询事件。

session["lastLDEvent"] = ldg.get_event.map(&:id)