Я реализую своего рода рубиновый онлайн-терминал (просто для практики).Я использую AJAX из простого веб-приложения js для вызова метода, который уклоняется от ввода «терминала».Чтобы избежать проблем со средой и позволить пользователю создавать свои собственные объекты, я использовал объект «привязки».Проблема в том, что я не знаю, как сохранить привязки.
Моя первая идея состояла в том, чтобы создать привязку, которая сохраняется между запросами сообщений при каждом доступе пользователя к приложению.В этот момент создается пара ключ-объект с уникальным ключом и новой привязкой.Затем ключ передается клиенту.Когда пользователь отправляет строку для оценки через 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
Но во время выполнения код не может создать пару ключ-значение.Фактически, все, что я пытаюсь выполнить после этой строки, терпит неудачу.Я не понимаю, почему.
На самом деле, я думаю, что если я смогу сериализовать привязку, она будет работать, но я думаю, что она может быть неэффективной из-за задержки в сети и возможного роста привязки.