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关联。