Лучший способ подключиться к 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 и сделать этот хэш более детальным (возможно, для каждой страницы или сеанса?) И убедиться, что он исчез после того, как страница больше не используется?

0 ответов

Другие вопросы по тегам