Rails活动记录查询,序列化数组

假设我有用于以String数据类型存储pet数组的Users数据

[ #, #, #, # ] 

我可以让所有有猫的用户? 也许像User.find_all_by...User.where(....)或任何作为关系返回的东西? 所以我可以订购有效的记录查询。

我知道我可以让所有有猫的用户

 User.all.select{|s| YAML.load(s.pets).include?'cat'} 

,但它转换为无法与活动记录查询一起订购的数组。

thx求助。

您可以使用简单的SQL来查看序列化列中是否显示“cat”。

User.where('pets LIKE "%cat%"').all

您需要规范化数据,添加Pet模型并在theese模型之间设置has_and_belongs_to_many关联。