与数组字段

时间:2016-04-04 12:43:24

标签: mysql ruby-on-rails-4

这是我遇到的问题:

我正在使用Rails 4& MySQL的

我的消息有一个发件人和一个收件人。

我希望能够存档邮件,但如果发件人存档邮件,收件人仍然可以访问该邮件,直到将其存档为止。

我序列化了一个字段:

serialize :archived_by, Array

包含归档邮件的用户

但我无法弄清楚如何使用它进行查询。

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

效果很好,返回用户'

归档的邮件
Message.where.not("archived_by like ?", [1].to_yaml)

没有工作,什么也没有回来

我想找到别的东西,而不是使用经典的多对......

谢谢!

更新

我最终决定添加2个字段,一个用于发件人和一个让收件人知道哪些存档邮件。如果有人有正确的方法,请告诉我们:)

1 个答案:

答案 0 :(得分:0)

如果您使用的是postgresql,则可以查询信息。 正如在回答Searching serialized data, using active record中所描述的那样,serializer的缩小至少在mysql下,是你通过本机数据库抽象。