我正在实现一种 ruby 在线终端(仅供练习)。我正在使用来自简单 js Web 应用程序的 AJAX 来调用评估“终端”输入的方法。为了避免环境问题并让用户创建自己的对象,我使用了“绑定”对象。问题是我不知道如何保持绑定。
我的第一个想法是创建一个绑定,每次用户访问应用程序时,它都会在帖子请求之间持续存在。在那一刻,使用唯一键和新绑定创建了一个键-对象对。然后将密钥传递给客户端。当用户通过 ajax 发送字符串进行评估时,我发送密钥。然后,我可以获取绑定对象并对其进行更新。
我试过类似的东西:
class TerminalController
@@bindings = {}
def index
@token = keyToken
@@bindings[@token] = getBinding
end
private
def keyToken
Digest::MD5.hexdigest(Time.now.to_s)
end
def getBinding
# declare methods for all bindings
# ...
binding
end
end
但是在执行时,代码无法创建键值对。事实上,我在该行之后尝试执行的任何操作都失败了。我不明白为什么。
实际上,我认为如果我可以序列化绑定它会起作用,但我认为它可能效率低下,因为网络延迟和绑定的可能增长。