2

在我的 Rails 应用程序中,我有一个允许用户修改呈现的 HTML 的视图,例如移动按钮、更改 DIV 的颜色等。如何保持这些更改,以便下次呈现视图时,那些变化有体现吗?

我的第一个想法是将修改后的 HTML 作为文本列存储到数据库中。但是我真的不喜欢这种方法,因为 HTML 可以任意大,更不用说性能会很差。我四处寻找,到目前为止还没有任何线索,这让我感到困惑,因为我认为这种情况并不罕见:WYSIWYG 类型编辑器、网站构建器应用程序都应该需要解决这个问题。这让我怀疑我是否走错了路。

非常感谢任何见解!

4

3 回答 3

0

为此,您需要为按钮提供一些位置编号。在移动这些按钮后,调用 ajax 请求以序列化方式将这些位置存储在数据库或缓存中。

  [button3, button1, button4, button2] or "button1, button4, button3, button2"

通过循环此对象(将此对象转换为数组),您可以在下次渲染视图时显示这些按钮。

同样,您可以使用 div 的颜色来做到这一点。为您的 div 提供一些唯一的 id,并使用颜色代码存储这些 id。

我希望这会对你有所帮助。

于 2012-11-03T07:43:56.747 回答
0

听起来用户对 DOM 有很多控制权,因此在每个元素的基础上存储更改是没有意义的——这将难以维护并且效率极低。

用户将同时更新 HTML 和 CSS,它们本质上只是字符串,因此一个好的解决方案可能是将修改后的 HTML 和 CSS 呈现为字符串并将它们存储在 MongoDB 文档中(一起或单独),然后引用那些 Mongo 文档当您想再次加载页面时。

于 2012-11-04T12:11:22.553 回答
0

我想我找到了一个解决方案,即:

  1. 创建一个名为“站点”的模型
  2. 将页面分成多个逻辑部分,例如徽标/标题、导航菜单、内容等。
  3. 编辑页面所见即所得的风格
  4. 通过此模型将 HTML 保存到数据库中
  5. 当需要渲染页面以反映更改时,从数据库中提取内容并在模板中将它们呈现为“原始”
于 2012-11-21T00:26:18.350 回答