2009-12-31 81 views
1

我剛剛開始學習Ruby on Rails,我想創建一個應用程序,允許我將文件添加到數據庫。目前,我正在使用Eclipse的Aptana插件開發rails應用程序,並且應用程序使用默認的sqllite db。將文件添加到Ruby on Rails應用程序中的數據庫?

我試圖產生具有以下參數的支架:documents title:string file:varbinary。然後我做'耙' - >'db' - >'遷移'。當我遷移到本地主機/文檔並單擊「新建文檔」時,應用程序失敗並顯示錯誤。

我想要做的是點擊'新文檔',有一個字段,允許我瀏覽本地計算機上的文檔,選擇文檔並將其添加到軌道應用程序中的數據庫。

回答

4

Paperclip建議比attachment_fu這些天。它非常簡單易用,與您的活動記錄模型一起使用。

1

它是一個特定類型的文件要補充的嗎?

我只是問,因爲如果它不是一種從數據庫中受益的數據(文本數據可能是可搜索的,二進制數據不是),那麼你更好地將它存儲在文件系統中並直接提供 - 尤其是對於圖像或視頻等內容 - 而不是將其插入到數據庫中,並且每次用戶請求時都必須通過應用程序。

我並不是說,有沒有你可能想在數據庫文件中的任何原因,但我可以把它看成最後的手段,十年後的網絡編程,我不能跨越的情況下,來這是必要的。

+0

我們正試圖實施一個文件管理系統,它實現了公司流程。因此,文檔需要存儲在somesort的中央存儲庫中,並且它必須存在於某些時間只能由特定用戶訪問的狀態。有了這樣的控制要求 - 我認爲這可能只能使用數據庫? – Seth 2009-12-31 00:47:39

+0

實際上,您可以通過幾種方式實現這一點 - 如果數據存儲在文件系統的某個區域,且只能由運行rails和sysadmins的用戶訪問,那麼您可以根據訪問控制執行任何操作,因爲文件請求必須通過您的應用程序來訪問,因此您可以將權限詳細信息存儲在數據庫中,並僅通過應用程序層將文件提供給允許的用戶。或者你可以在文件系統上使用權限並以這種方式進行管理 - 可能更容易讓系統管理員使用。 – glenatron 2010-01-02 00:11:41

1

我會強烈建議attachment_fu插件,因爲這可以讓你創建模型帶附件相當好聽,回形針插件是另外一個也不錯!

如果您在決定使用哪一個附件時遇到問題,就我所知,Paperclip使多個附件更容易,比如Album擁有多張照片,並且Attachment_fu對於單個附件(例如用戶有一個附件)更爲輕鬆顯示圖片。

+0

優秀。在這裏找到一個很好的教程:'http:// clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu' – Seth 2009-12-31 01:02:13

1

我們在我正在管理的網站上做這樣的事情。我不同意將這些文件存儲在數據庫中,我同意這裏的其他海報,並建議您嘗試像回形針一樣的東西。

一個忠告:如果你想訪問控制,確保回形針不保存在/公衆,其中,如果他們知道該網址的人可能會訪問這些地方您的文件。通過控制器中的send_file將文件傳送給用戶。

相關問題