Ruby on rails 要在数组中搜索的rails范围

Ruby on rails 要在数组中搜索的rails范围,ruby-on-rails,scopes,Ruby On Rails,Scopes,因此,我创建了一个织物数据库,其中包含一列“颜色”数组。例如:紫色和白色条纹织物,其中颜色=[“紫色”,“白色”] 我想创建一个范围,以便用户可以搜索包含特定颜色的面料 它似乎非常基本,所以我很惊讶我似乎找不到任何解释如何以这种方式使用作用域的东西 我需要类似下面的代码,它检查颜色数组中的每个项目。谢谢 scope :with_colour, -> (colour) { where("colour = ?", colour) } 范围:使用_color,->(color){where(“

因此,我创建了一个织物数据库,其中包含一列“颜色”数组。例如:紫色和白色条纹织物,其中
颜色=[“紫色”,“白色”]

我想创建一个范围,以便用户可以搜索包含特定颜色的面料

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

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

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

范围:使用_color,->(color){where(“color like?”,“%#{color}%”}

PostgreSQL有一系列有用的功能,您可以在Rails应用程序中加以利用

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

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

那么你使用postgres数组列了吗?是的postgres!并设法找到了我要找的东西:范围:with_color,->(color){where(“:color=ANY(color)”,color:color}现在对我有用:)