0

画像、コメント、オブジェクトにリンクされたデータなど、サーバー上の投稿をエクスポートおよびインポートする機能をユーザーに提供したいと考えています。

基本的には、どこかをクリックして zip ファイルを受信できるようにしたいと考えています。それを開くと、いくつかの xml、json、または yaml ファイルと、投稿の一部であった画像ファイルが表示されます。

その後、ファイルをアップロードして、エクスポートしたときの状態に投稿を戻すことができます。

これに役立つチュートリアルや宝石が見つかりませんでした。この問題にアプローチするためのデザインを勧めてもらえますか?

ありがとう、

4

1 に答える 1

1

過去に、私はエクスポートのためにこのようにしました:

  • 新しい一時ディレクトリを作成する
  • エクスポートするすべてのものを選択した形式にシリアル化し、そのディレクトリのファイルに書き込みます
  • 難解な ID の代わりにファイル名をシリアル化するなどして、画像が明確に識別できるようにする
  • 一時ディレクトリに画像ファイルをコピーします
  • ディレクトリ全体をzipします(システムコマンドで実行できます)

  • オプションですが、良い考えです。シバン全体をバックグラウンド ジョブに移動し、ファイルをダウンロードする準備ができたらユーザーに通知します。

この方法でインポートが実行可能かどうか、または良いアイデアであるかどうかはわかりませんが、試すことができます。

エクスポートするフィールド/属性を指定する 1 つの巧妙なトリックは、 overwriteRecord#attribute_namesです。

通常updated_at、user_idなども含むPostオブジェクトのタイトル、本文、作成日のみをエクスポートしたいとします。

# in the export script you'd write
class Post
  def attribute_names
    ['title', 'body', 'created_at']
  end
end

Post.export_for(@user).all.to_yaml

ここでレコードのイントロスペクションを台無しにするため、エクスポート スクリプトでのみこれを行うことが重要です。ただし、通常、エクスポート メソッド (to_yaml、to_xml など) はこのメカニズムに依存して何をエクスポートするかを決定するため、これをローカル/一時的に行うとうまく機能します。

于 2013-10-20T12:36:51.673 に答える