Rails 作用域以在数组中搜索



所以我创建了一个织物数据库,有一个列"颜色"数组。例如:紫色和白色条纹织物,其中colour = ["purple", "white"].

我想创建一个范围,以便用户可以搜索包含某种颜色的织物。

这似乎非常基本,所以我很惊讶我似乎找不到任何解释如何以这种方式使用范围的东西。

我需要类似于下面的代码的东西,它检查颜色数组中的每个项目。谢谢!!

scope :with_colour, -> (colour) { where("colour = ?", colour) }

PostgreSQL有一堆有用的数组方法,你可以在Rails应用程序中利用它们

。在您的情况下,您还可以执行以下操作:

scope :scope_name, -> (color) { where("colour @> ?", '{color}')}

scope :with_colour, -> (color( { where("color like ?", "%#{color}%"( }

最新更新