ruby-on-rails - 如何在postgresql rails中搜索具有多个值的数组列
问题描述
我有两个两个模型post
,tags
我想在哪里发布一些标签。
- 标签.rb
post_id integer 3
tags array {'v1', 'v2'}
在标签模型中搜索时Tag.where('tag && array[['v1', 'v2']]')
但是当在帖子中添加这个不起作用Post.where('tags.tags && array[['v1', 'v2']]')
每个帖子都有一个标签
解决方案
最直接/最原始的方法是这样的:
Post.joins(:tags).where("ARRAY['v1', 'v2'] <@ tags.tags")
关于将用户输入的值注入发送到数据库的字符串中的强制性警告,用于WHERE
子句。
推荐阅读
- javascript - 在Javascript中更改一系列选项卡上的背景颜色
- javascript - 通过从 HTML 中传递 Angular 组件的变量来更改它
- vaadin - 带有按钮和上下文菜单的 Vaadin 14 弹出窗口
- php - Laravel 不保存一对多关系
- swift - CordovaError: Promise denied with non-error: '命令的错误代码 70:
- python - 密切关注最近添加的文件的文件夹,并在 QTableView 上显示该文件中的数据
- unix - 私钥形式的openssl散列输出不应显示文件路径名称
- c# - .NET 使用可为空的引用类型实现 IEnumerator
- c# - HttpContext.Current 的非 System.Web 替代品
- node.js - 无法运行 npm start 命令(Node.js)