rails查询可序列化对象

时间:2011-06-16 05:52:50

标签: ruby-on-rails serialization

如何查询数据库以查找包含一个或多个存储为可序列化的属性的对象?

例如,我有一场仅在某些城市举办的音乐会。我想用一个名为cities的列创建一个Concert对象并存储一组城市。

如果我想查询我的数据库以查找在1个城市中发生的所有音乐会(或在n个城市的阵列中发生的所有音乐会),我该怎么做?

2 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法是不将其存储在序列化列中,而是将其存储在名为Cities的单独表中。然后你可以这样做:

City.find_by_name('Cityname').concerts

答案 1 :(得分:0)

查询的一种可能方法是使用SQL的LIKE条件。这适用于序列化表中的布尔条件。

例如,要找到那些带有'notification'选项的用户,

users=User.arel_table
User.where(users[:options].matches("%notification: true%"))

至于其他类型的变量,这是不可行的。