Rails查询数组中的“逗号分隔的字符串”

时间:2019-06-15 15:15:17

标签: mysql ruby-on-rails-4 activerecord

这是文章的Rails网站。文章具有存储在4个不同字段中的标签-technology_tag,sub_segment_tag和另外两个字段。 每个字段都存储一个逗号分隔的字符串。

我有一种方法,可以通过组合4个逗号分隔的字符串标签字段(以下为@tags)来返回给定文章的标签数组(在显示页面上)。

在文章显示页面上,我有一个查询来获取相关文章,就像这样-

Article.regular.published.where('date>?','2018-01-01')。order(date::desc).where('sub_segment_tag IN(?)',@tags).limit( 3)

例如:-如果当前查看的文章具有- @tags = [“钱包”]

仅匹配sub_segment_tag中只有一个值(即“钱包”)的文章。 我希望它匹配具有sub_segment_tag =“ Wallet,Banking”和其他值的文章。

请告诉我这是否可能。

谢谢

1 个答案:

答案 0 :(得分:0)

像运算符一样直接使用进行查询。因为存储在列中的值是一种字符串格式。下面将返回所有带有“钱包”的sub_segment_tag。

Article.regular.published.where('date > ?', '2018-01-01').order(date: :desc).where("sub_segment_tag LIKE (?)", '%Wallet%').limit(3)