Ruby on Rails:在集合数组中查找具有值的元素

时间:2017-05-28 10:16:28

标签: ruby-on-rails

我有Domain模型,其中ips属性包含IP地址:

=> #<Domain:0x005640cef7cd48> {
              :id => 1,
            :name => "example.com",
             :ips => [
        [0] #<IPAddr: IPv4:1.2.3.4/255.255.255.255>
    ]
}

我想找到所有具有相同IP地址的域名。如下所示:

Domain.where(|d| d.ips.include? "1.2.3.4")

有没有直接的方法呢?

1 个答案:

答案 0 :(得分:1)

以下查询应该有效

Domain.where("ips @> ?", '{1.2.3.4}')

或者你也可以

Domain.where("'1.2.3.4' = ANY (ips)")

Reference