2013-09-22 16 views
0

有人在PHP中做了一箇舊項目,並試圖將其轉換爲Rails。在嘗試迭代rails中的多個數組時遇到問題。 存儲在數據庫中數組是這樣的:mysql中的Rails多數組格式

a:5:{i:0;s:8:"Director";i:1;s:11:"Shareholder";i:2;s:14:"Vice President";i:3;s:9:"Secretary";i:4;s:9:"Treasurer";}

想顯示的字符串值,如「導演」和「股東」。 數據庫字段是否需要更改爲不同的格式才能正常工作? 這將如何在軌道上完成?

預先感謝您

+0

這是來自PHP的['serialize'](http://php.net/manual/en/function.serialize.php)嗎? –

+0

不確定。用於創建記錄的原始代碼不再可用。 –

回答

0

這看起來像PHP的serialize函數的輸出給我。

如果你有PHP周圍或不介意安裝它來幫助他們進行數據遷移,那麼我會寫一個簡短的PHP腳本使用PHP的unserializejson_encode功能,這些列轉換爲JSON:讀值,unserialize它,json_encode的結果,把它寫回數據庫(全部用PHP)。

之後,你應該能夠使用ActiveRecord的serializeJSON as the storage format

class Model < ActiveRecord::Base 
    serialize :whatever_it_is_called, JSON 
end 

您也可以使用YAML(默認ActiveRecord的的serialize)如果你有在PHP-土地YAML支持。

如果你不想觸摸PHP,那麼你將不得不編寫PHP的serialize格式的Ruby解析器(這似乎在PHP文檔中有很好的記錄),並且鉤住ActiveRecord的serialize

當然,您將爲所有這些工作使用真實數據庫的副本。