1

我有以下场景:我正在调整一个就地编辑库,以便能够在输入字段上编辑值后显示格式化的值。

为此,我想存储在给定控制器操作上呈现的某些字段的 id,以便在需要时通过 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 生命周期并使这个散列更加细化(也许是每页或会话?)并确保它在页面不再被使用后消失?

4

0 回答 0