2016-04-04 49 views
0

這裏不喜歡的是我堅持的問題:上陣列場

我使用Rails 4 & MySQL的

我有消息具有一個發送器和一個接收方。

我希望能夠對郵件進行存檔,但是如果發件人存檔郵件,收件人仍可以訪問該郵件,直到他將其存檔爲止。

我有一個序列化領域:

serialize :archived_by, Array 

其中包含用戶歸檔的消息

,但我無法弄清楚如何與它進行查詢。

Message.where("archived_by like ?", [1].to_yaml) 

效果很好,返回由用戶歸檔的郵件「1」

Message.where.not("archived_by like ?", [1].to_yaml) 

將無法​​正常工作,沒有返回

我想找到的東西比其他採用傳統多對多...

謝謝!

UPDATE

我終於決定增加2場,一個發件人&一個收件人知道哪個歸檔的消息。如果有人有適當的方式來做到這一點,請告訴我們:)

回答

0

如果您使用postgresql,您可以查詢信息。 正如回答Searching serialized data, using active record所述,至少在mysql下的serializer的縮小規模是,你繞過原生數據庫抽象。

+0

我使用的MySQL,但不能使用選擇或任何因爲我需要能夠分頁,所以它應該是一個參數在查詢 – Thounder

+0

'分頁' - 那麼你應該開始一個新的問題 – devanand