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

Datamapper resource becomes collection in session value

在 运行 函数之后 returns Datamapper 对象 (LuckEvent),我的代码将其存储在 Rack 会话中。这是在 HAML 视图中读取的,该视图始终 returns a 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 returns [].

我会尝试将 get_event 的结果转换为 Array。在会话中存储 DataMapper::Collection 可能存在问题。

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

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

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