使用带有连接的占位符

2023-11-29

我试图通过用我的连接参数替换来避免任何 SQL 注入漏洞。

Category.joins("LEFT OUTER JOIN incomes ON incomes.category_id = categories.id AND incomes.dept_id = ?", params[:Dept])

这尝试执行带有问号的查询,而不是用它替换参数。执行此操作的正确方法是什么?

EDIT:

查询需要返回这个:

SELECT categories.* 
FROM "categories" 
LEFT OUTER JOIN incomes 
ON incomes.category_id = categories.id AND incomes.dept_id = 86

not

SELECT categories.* 
FROM "categories" 
LEFT OUTER JOIN incomes 
ON incomes.category_id = categories.id 
WHERE incomes.dept_id = 86

结果截然不同!


一种选择是使用清理sql数组方法。然而,它是一种受保护的方法,因此在您的类别模型上您可以执行以下操作:

class Category < ActiveRecord::Base
  def self.income_for_dept(dept)
    Category.joins(sanitize_sql_array(["LEFT OUTER JOIN incomes ON incomes.category_id = categories.id AND incomes.dept_id = ?", dept]))
  end
end

然后你会这样称呼它:

Category.income_for_dept(params[:Dept])

如果需要,Ruby 提供了一些其他方法来获取该方法,而无需在 Category 中创建类方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用带有连接的占位符 的相关文章

  • Yii 查询时对相关模型的限制

    我遇到了极限问题 我正在使用的代码如下 model PostCategory model record model gt with array posts gt array order gt posts createTime DESC li
  • 了解 Ruby 的加载路径

    我有点困惑为什么我的项目无法加载它需要的文件 这是一个非常简单的项目树 processor bin lib processor rb processor mapper rb reducer rb and my processor rb文件看
  • ruby 包含问题

    class Foo def initialize a puts Hello a end end module Bar def initialize b puts b World end end class Sample lt Foo inc
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • 应该使用 Rspec Gem 在 Belong_to 测试中返回“String:Class 的未定义方法‘reflect_on_association’”

    在我的 Rails 应用程序中 我有我的模型Request Service and ServiceRequest 在我的 models rb 文件中 我有 request rb class Request lt ApplicationRec
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑
  • T-sql、刻度、时间戳

    是否有可能在 t sql 中获得像 DateTime Ticks 这样的 C 内容 感谢帮助 您不太可能从 SQL 中获得与 DateTime Ticks 相同的精度 因为 SQL 不能以那么高的精度表达时间 SQL Server 只存储大
  • 适用于移动应用程序的 Rails REST API。会议

    我正在创建一个移动应用程序 该应用程序拥有用户并与后端的自定义 Rails REST API 进行通信 我应该在登录时创建会话吗 或者我应该在每个请求中发送用户名和密码 如果会议是可行的方法 那么通常是如何实施的 只需生成令牌 并使用它们来
  • 如何在 SQLite 中获取最后插入的 ID?

    SQLite 中是否有任何内置函数可以获取最后插入的行 ID 例如 在 mysql 中我们有LAST INSERT ID 这种功能 对于 sqlite 任何可用于执行相同过程的函数 请帮我 Thanks SQLite 这可以使用SQLite
  • MongoMapper 和 bson_ext 问题

    我无法让 MongoMapper 与我的 Rails 应用程序一起使用 我收到此错误消息 注意 C 扩展未加载 这是最佳 MongoDB Ruby 驱动程序性能所必需的 您可以按如下方式安装扩展 宝石安装 bson ext 如果安装后继续收
  • MySQL 中的 UDF 性能

    我注意到 当查询在 SELECT 或 WHERE 子句中调用 UDF 时 MySQL 查询执行时间的性能会呈指数级下降 有问题的 UDF 查询本地表以返回标量值 因此它们不仅执行算术表达式 而且充当相关子查询 我通过简单地删除 UDF 并使
  • 更新每组单行

    的背景 我有一个临时表 其中包含唯一的 rowID OrderNumber 和 guestCount 等信息 RowID 和 OrderNumber 已存在于该表中 并且我正在运行一个新查询来填充每个 orderNumber 缺少的 gue
  • SQL 插入失败 - 违反主键约束

    我在 SQL Insert 语句中看到一个非常奇怪的问题 我有一个简单的表 带有一个 ID 和 2 个日期时间 请参阅下面的创建脚本 CREATE TABLE dbo DATA POPULATION LOGS ID int IDENTITY
  • 如何对 SQL Server Express 进行实时更改

    我一直在使用 VS studio 开发一个 ASP NET Web 应用程序 我正在使用 SQL Server Express 在开发过程中 我一直在我的服务器上测试我的网络应用程序 每次我需要更新数据库时 我都会简单地删除旧数据库 位于我
  • 如何查看移动设备是否已注册

    我正在使用适用于 Amazon SNS 的 Amazon AWS Ruby SDK 但在已注册的设备方面遇到一些问题 有时 当设备再次注册时 我会收到类似错误AWS SNS Errors InvalidParameter Invalid p
  • 将此 MySQL 查询转换为 PyGreSQL

    我正在开发一个 Ruby 应用程序 它使用 mysql 函数 XOR 和 BIT COUNT 不过 我现在需要在运行 PyGreSQL 的 Heroku 上运行该应用程序 我找不到任何可以帮助我的 PyGreSQL 文档 那么任何人都可以翻
  • 处理rails应用程序中的rack_throttle异常

    当超出速率限制时 如何处理由rack throttle gem 生成的错误 现在我只收到包含以下内容的回复 Internal Server Error undefined method each for 403 Forbidden Rate
  • 部署 dacpac 所需的权限

    我正在尝试使用 sqlpackage exe 在租户上部署 dacpac 目前 我正在向将部署此功能的帐户授予 SysAdmin 或 db owner 权限 并且它工作正常 但在生产中 如果目标租户数据库属于其他应用程序 我可能无法获得这些
  • 检查 Ruby 上的浏览​​器控制台输出

    如何检查浏览器控制台是否有错误 例如 我用 Selenium 启动了浏览器 firefox 的 chrome 并且用 Selenium WebDriver 做了一些操作 之后我想知道网络控制台中是否有任何错误 我尝试接受控制台错误 例如 d
  • 将 URL 转换为 JSON 版本?

    在我的应用程序的所有页面上 我想要一个指向当前页面的 JSON 版本的链接 有什么巧妙的技巧可以做到这一点吗 当 URL 中包含额外的 参数时 情况就变得复杂了 所以 url 将被转置为 users gt users json users

随机推荐

  • 如何使用 JavaScript 在单击事件上显示工具提示

    如何通过使用 JavaScript 单击按钮来显示工具提示 这是我的代码 HTML div class tooltip Hover over me div class tooltiptext div div
  • 为不同用户返回VBA网络驱动器号

    我为自己和同事创建了一个门户 用于下载引用不同网络驱动器的工作簿模板 以进行整合 该门户托管在 会计 Z 驱动器中 但其中一个工作簿引用了不同驱动器 BI Y 中的电子表格 这在我的机器上运行得非常好 但我的同事有不同的驱动器号 例如 M
  • 在 xcode 4 中使用 UIModalTransitionStylePartialCurl 导航时在 ios 设备上崩溃

    我在 ios 4 设备上使用 UIModalTransitionStylePartialCurl 在我的测试应用程序中 我有 2 个类 每个类中有一个按钮 在第一页单击按钮时 它将导航到第二页 通过向上卷曲页面 但在第二页中当我单击后退按钮
  • R 中的数据转换:更好地对行值或因子级别进行操作?

    假设您注意到大因子向量中的一些值是相似的 巩固这些价值观的更好策略是什么 我在分析中使用了两种策略 这两种策略在性能上似乎具有可比性 1 将合并逻辑放入函数中并使用sapply和 2 改变因子水平本身 下面我为每一个都制作了一个例子 示例
  • 如何找到矩形矩阵的列空间的基?

    给定一个 numpyndarray尺寸为 m n 其中 n gt m 如何找到线性独立的列 一种方法是使用LU分解 因素U将与您的矩阵大小相同 但将是上三角的 在每一行中U 选取第一个非零元素 这些是枢轴元素 属于线性独立列 一个独立的例子
  • 像 SAS 一样加入 bash

    我想加入两个文件bash使用公共列 我想保留两个文件中所有可配对和不可配对的行 不幸的是使用join我可以仅从一个文件中保存不可配对的字段 例如 join 1 1 2 2 a1 t 我还想保留两个文件中重复条目 在连接列中 的所有配对 IE
  • php + unixODBC + DB2 + DESCRIBE = 令牌无效?

    我试图运行的代码 query DESCRIBE TABLE TABLENAME result odbc exec h query 结果 PHP 警告 odbc exec SQL 错误 unixODBC IBM iSeries Access
  • Analytics API 返回:错误请求 - invalid_grant

    我正在使用 Google Analytics API v3 我现在将解释我的申请流程 我在这里使用了这个文档 https developers google com accounts docs OAuth2WebServer 首先 为用户生
  • Apache Commons SCXML - 找不到 JexlContext

    我是 SCXML 新手 甚至无法启动最简单的应用程序 当我尝试启动它时 出现以下异常 但我有图书馆commons scxml 0 9 jar将该类放在类路径上 有任何想法吗 Exception in thread main java lan
  • 无法禁用特定 Android 设备上的主页按钮

    我知道这个问题已经被问过很多次了 答案总是 不 我们不能禁用主页按钮 我有一些不同的问题要问 我编写了简单的代码 其中我的活动覆盖 onKeyDown 并为所有按键返回 true 从理论上讲 这意味着无论谁打开该应用程序 都会被困在那里 并
  • 如何根据文本长度使 UITextView 高度动态变化?

    正如你在这张图片中看到的 the UITextView根据文本长度改变它的高度 我想让它根据文本长度调整它的高度 我看到了其他问题 但那里的解决方案对我不起作用 this Works对我来说 所有其他解决方案都没有 func adjustU
  • 如何在 Visual Studio Code 中使用多根工作区的调试启动配置?

    调试自多根工作空间似乎不起作用 这些是一个新功能 也许这是一个错误 但没有实际的例子 只是网站上的伪代码 Attribute program is not absolute workspaceFolder node modules moch
  • 尝试远程调试时未能找到进程调度程序的空闲套接字端口

    强调 Windows 10 主机 ubuntu vagrant box virtualbox 作为访客虚拟机 使用 vagrant 端口转发 如下所示 config vm network forwarded port guest 1234
  • Apache Poi 安卓

    我在用Apache Poi在 Android 应用程序中 但我有一个问题HSSFWorkbook 我只想读取 Android 平板电脑内存中的 Excel 文件 在Android应用程序中显示数据 我的代码 Override protect
  • Java 8 流处理不流畅[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我对 Java 8 流有一个问题 其中数据是突然批量处理的 而不是在请求时处理的 我有一个相当复杂的流 必须并行化 因为我使用concat合并两个流 我的问题源于这样一个事实 数据似乎
  • Maven 程序集插件未在解压的 dependencySet 上应用 fileMode

    整个下午我都在用头撞墙 我需要创建一对程序集 zip and tgz 并且需要为存档中包含的 shell 脚本设置正确的可执行权限 我所做的似乎没有任何区别fileMode设置似乎没有效果 这是我的程序集描述符的一个片段
  • python 异步上下文管理器

    在 Python Lan 参考文献中 3 4 4 据说 aenter and aexit 必须返回可等待的内容 但是 在示例异步上下文管理器中 这两个方法返回 None class AsyncContextManager async def
  • GWT 中的正则表达式用于匹配 URL

    我实现了 Pattern 类 如下所示 http www java2s com Code Java GWT ImplementjavautilregexPatternwithJavascriptRegExpobject htm 我想使用以下
  • 如何从字符串中删除表情符号

    我的问题是使用正则表达式从字符串中删除表情符号 但不删除字符串中的 CJK 中文 日文 韩文 字符 我尝试使用这个正则表达式 REGEX u1F600 u1F6FF s i 这个正则表达式工作正常 除了它还可以检测我需要这些字符的中文 日文
  • 使用带有连接的占位符

    我试图通过用我的连接参数替换来避免任何 SQL 注入漏洞 Category joins LEFT OUTER JOIN incomes ON incomes category id categories id AND incomes dep