簡體   English   中英

Rails ActiveRecord的導入/導出功能

[英]Import/Export functionality for rails activerecord

我想讓我的用戶能夠在我的服務器上導出和導入他們的帖子,包括圖像,注釋以及與對象的任何鏈接數據。

基本上,我希望他們能夠單擊某處並接收一個zip文件,如果他們打開它,他們將看到幾個xml,json,yaml文件以及屬於其帖子的圖像文件。

然后,他們可以上傳文件,並以導出時的方式返回帖子。

我找不到任何教程或gem可以幫助我解決此問題,您能否向我推薦解決該問題的設計?

謝謝,

過去,我是通過這種方式進行出口的:

  • 創建一個新的臨時目錄
  • 將要導出的所有內容序列化為選擇的格式,並將其寫入該目錄中的文件中
  • 確保圖像清晰可辨,例如,通過序列化其文件名而不是奧術ID來實現
  • 將圖像文件復制到臨時目錄中
  • 壓縮整個目錄(可以通過系統命令完成)

  • (可選),但這是一個好主意:將整個shebang移至后台作業,並在文件准備好下載時通知用戶。

我不確定導入是否可以通過這種方式進行,甚至不是一個好主意,但是您可以嘗試。

指定要導出哪些字段/屬性的一種巧妙技巧是覆蓋Record#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等)依靠此機制來確定要導出的內容,因此在本地/臨時執行此操作非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM