2014-05-13 24 views
0

我正在使用Google API客戶端gem,它返回數據並被包裝在一個對象中。我想在會話之間使用這些數據。我應該如何儲存它?我起初以爲我可以序列化它,然後把它放到一張桌子上,但遇到了它放棄的物體類型的問題。實際上,之後我認爲把我需要的數據放入一個哈希數組(例如youtube視頻 - 標題,id,縮略圖等)會更好,因此我提取了我所需要的和完成的。現在,我有一個數組 - 我應該將它存儲在數據庫中以供用戶使用,還是應該將它放入會話變量中?會話變量似乎更容易,不需要創建額外的表等,但這是否意味着它將被存儲爲一個cookie?可能是一個相當大的cookie。無論如何,建議在這裏將不勝感激。在Rails中爲用戶會話存儲大對象

+0

您不能存儲在Redis或類似的半永久性數據存儲中嗎? –

+0

你解決了這個問題嗎?如果是這樣,你可以請與我們分享知識嗎?你有沒有嘗試建議的答案? –

+0

不,我放棄了這個想法,我花了太多時間。我選擇了提取我需要的字段並將它們放到自己的列中。做了一些'serialize'的測試後,我發現它很好地處理了簡單的對象,但似乎並不喜歡我使用的對象。 – Martyn

回答

0

首先,與數據庫存儲:與ActiveRecord,你可以簡單地存儲JSON。因此,如果您的對象可以正確序列化,那麼將它存儲在數據庫中沒有問題。只需將此行添加到您的型號中即可:

serialize :data, JSON. 

雖然我認爲您可以完美地使用session var來達到此目的。默認情況下,它會作爲cookie存儲 - 但如果您認爲信息太多,則可以將rails配置爲使用服務器端存儲。