我正在实施一种红宝石在线终端(仅供练习)。我从一个简单的js web应用程序使用AJAX来调用一个方法来破坏“终端”的输入。为了避免环境问题并让用户创建自己的对象,我使用的是“绑定”对象。问题是我不知道如何坚持绑定。
我的第一个想法是创建一个bindindg,在用户每次访问应用程序时都会在帖子请求之间保持不变。在那一刻,使用唯一键和新绑定创建密钥对象对。然后将密钥传递给客户端。当用户发送字符串以通过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
但是在执行时,代码无法创建键值对。实际上,我尝试在该行之后执行的任何操作都会失败。我不明白为什么。
实际上,我认为如果我可以序列化绑定它将起作用,但我认为它可能是低效的,因为网络延迟和绑定的可能增长。