基于属性大小的查询

时间:2017-05-20 17:15:33

标签: ruby-on-rails activerecord rails-activerecord ruby-on-rails-5 ruby-on-rails-5.1

我想知道在Rails 5中是否可以对给定长度的属性进行where查询?

假设我在模型tags上有一个名为Post的序列化数组属性,我想找到该属性中包含3个以上项目的所有posts

我认为它看起来像这样:

Post.where('tags.size > ?', 3)

如果在ActiveRecord中有解决方案,那将是一个很大的好处。

1 个答案:

答案 0 :(得分:3)

首先,由@mu评论太短,答案here在您需要查询该属性时不使用序列化。 再次提到这个答案,你可以试试这样的事情,

Xsr-active-config

P.S。没有测试过。即使它有效,也似乎非常低效。

如果您打算开启创建名为Post.all.select { |post| post.tags.length > 3 } 的关联模型(更好的话),您可以执行类似

的操作
Tag