Лучший способ подключиться к 3-х страничному жизненному циклу Rails
У меня есть следующий сценарий: я адаптирую библиотеку редактирования на месте, чтобы иметь возможность отображать отформатированные значения после того, как значение отредактировано в поле ввода.
Для этого я хочу сохранить идентификатор для некоторых полей, отображаемых в заданном действии контроллера, для обслуживания через AJAX всякий раз, когда это необходимо.
Я хочу иметь возможность сделать следующее в представлении:
<%= edit_in_place @object, :attribute do |value|
"Formatted display value is #{value}"
end
%>
Итак, я генерирую UUID для отображаемого элемента управления:
<input ... data-uuid="27b52850-d68f-012e-5dc8-28373723e63c" ...>
Конечная цель - сохранить FormattingRules
хеш, который будет принимать передаваемый блок и назначать его UUID, чтобы я мог позже, после того, как пользователь отредактировал значение, вызвать метод AJAX для форматирования значения:
http://server/format/27b52850-d68f-012e-5dc8-28373723e63c?value=My+Value
Следующий код срабатывает:
def show
block = BestInPlace::FormattingRules[params[:id]]
render :text => block.call(params[:value])
end
И треска возвращается:
Отформатированное значение дисплея - My Value
Что здорово. При этом я могу скрыть редактирование на месте ввода и отобразить отформатированное значение.
Все уже работает, однако FormattingRules
хэш растет бесконечно и никогда не опустошается.
Мой вопрос: есть ли способ, которым я могу подключиться к жизненному циклу Rails и сделать этот хэш более детальным (возможно, для каждой страницы или сеанса?) И убедиться, что он исчез после того, как страница больше не используется?