在我的Rails应用程序中,我有一个允许用户修改呈现的HTML的视图,例如移动按钮,更改DIV的颜色等。如何保持这些更改,以便在下一次呈现视图时时间,那些变化都反映出来了?
我的第一个想法是将修改后的HTML作为文本列存储到数据库中。但是我真的不喜欢这种方法,因为HTML可以任意大,更不用说性能会非常糟糕。我挖到了,到目前为止还没有任何线索,这让我感到困惑,因为我不认为这是一个罕见的场景:WYSIWYG类型编辑器,网站构建器应用程序应该都需要解决这个问题。这让我想知道我是否会走错路。
非常感谢任何见解!
答案 0 :(得分:0)
为此,您需要为按钮提供一些位置编号。移动这些按钮后,调用ajax请求将这些位置以序列化方式存储在数据库或缓存中。
[button3, button1, button4, button2] or "button1, button4, button3, button2"
通过循环此对象(将此对象转换为数组),您可以在下次渲染视图时显示这些按钮。
你可以用div的颜色做同样的事。给你的div提供一些独特的id,并用颜色代码存储这些id。
我希望这会对你有所帮助。
答案 1 :(得分:0)
听起来用户对DOM有很多控制权,因此在每个元素的基础上存储更改没有意义 - 这很难维护并且非常低效。
用户将更新HTML和CSS,这些只是字符串,因此一个好的解决方案可能是将修改后的HTML和CSS呈现为字符串并将它们存储在MongoDB文档中(一起或单独),然后引用当你想再次加载页面时,那些Mongo文档。
答案 2 :(得分:0)
我想我找到了一个解决方案,即: