Rails范围搜索数组

时间:2018-08-15 08:26:40

标签: ruby-on-rails scopes

因此,我创建了一个带有“颜色”列的织物数据库。例如:紫色和白色的条纹织物,其中colour = ["purple", "white"]

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

这似乎是最基础的,所以令我惊讶的是,我似乎找不到任何能解释如何以这种方式使用范围的东西。

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

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

2 个答案:

答案 0 :(得分:0)

scope:with_colour,->(colour){where(“ colour like?”,“%#{colour}%”)}

答案 1 :(得分:0)

PostgreSQL有很多有用的array methods,您可以在Rails应用程序中利用

您也可以这样做:

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