当该属性是一个数组并且我在该数组中寻找某个值时,如何通过属性进行查询

时间:2013-08-08 23:27:39

标签: sql ruby-on-rails ruby activerecord

我有一个用户模型,用户有很多老年人。我想返回所有用户记录,其中senior_ids列包含id = x。我能想到的最好的是User.where(“?IN senior_ids”,x),但这不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这似乎你的设计有点不对劲。您应该使用has_and_belongs_to_many关联(或has_many:through)来连接用户和老年人。您可以在nzifnab的评论中阅读有关链接下的内容。然后你可以简单地写:

senior.users

使用当前设计,您可以使用:

User.all.select {|user| user.senior_ids.include? x}
然而,它真的很慢而且非常丑陋。保持序列化的ID数组通常是一个非常糟糕的主意。