2

Railsアプリには、ボタンの移動、DIVの色の変更など、レンダリングされたHTMLをユーザーが変更できるビューがあります。次回ビューがレンダリングされるときに、これらの変更を永続化するにはどうすればよいですか。変更は反映されますか?

私の最初の考えは、変更されたHTMLをテキスト列としてデータベースに保存することでした。ただし、HTMLは任意に大きくなる可能性があるため、このアプローチは本当に好きではありません。パフォーマンスが非常に悪くなることは言うまでもありません。私は掘り下げましたが、これまでのところ手がかりはありません。これは珍しいシナリオではないと思うので、私には困惑しています。WYSIWYGタイプのエディター、Webサイトビルダーアプリケーションはすべて、この問題を解決する必要があります。それは私が間違った道を進んでいるのだろうかと思います。

どんな洞察も大歓迎です!

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

私は解決策を見つけたと思います:

  1. 「サイト」というモデルを作成する
  2. ページをロゴ/ヘッダー、ナビゲーション メニュー、コンテンツなどの複数の論理部分に分割します。
  3. ページを WYSIWYG スタイルで編集する
  4. このモデルを介してHTMLをDBに保存します
  5. 変更を反映するためにページをレンダリングする必要がある場合は、DB からコンテンツを引き出して、テンプレートで「生」でレンダリングします。
于 2012-11-21T00:26:18.350 に答える
0

ユーザーは DOM に対して多くの制御を持っているように聞こえるので、要素ごとに変更を保存するのは意味がありません。これは維持するのが非常に難しく、非常に非効率的です。

ユーザーは HTML と CSS の両方を更新しますが、それらは本質的に単なる文字列であるため、変更された HTML と CSS を文字列としてレンダリングし、それらを MongoDB ドキュメントに (まとめてまたは個別に) 格納し、それらの Mongo ドキュメントを参照することをお勧めします。ページを再度読み込みたいとき。

于 2012-11-04T12:11:22.553 に答える