使用 SQL 函数在 ActiveRecord 中进行插入/更新

2024-06-28

我想在我的 Rails 应用程序中存储 IP 地址(v4 和 v6)。我已经安装了MySQL 的扩展 http://labs.watchmouse.com/2009/10/extending-mysql-5-with-ipv6-functions/添加了将 ip 字符串转换为二进制的函数,这将允许我轻松地按 IP 范围进行查询。

我可以使用未转义的 sql 语句进行 SELECT 类型查询,这很简单。

困难的部分是我还需要一种方法来覆盖插入/更新语句的字段转义方式。

此 ActiveRecord 语句

new_ip = Ip.new
new_ip.start = '1.2.3.4'
new_ip.save

应生成以下 SQL 语句

INSERT INTO ips(start) VALUES(inet6_pton('1.2.3.4'));

有没有办法做到这一点?我尝试了很多事情,包括覆盖ActiveRecord::Base#arel_attributes_values,不幸的是:生成的 sql 总是转换为二进制(如果这很重要,我的列是 MySQL VARBINARY(16))。


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

使用 SQL 函数在 ActiveRecord 中进行插入/更新 的相关文章

随机推荐

  • ggplot2 黑白配色方案的建议

    我正在使用 ggplot2 生成许多结构如下的图表 有没有一种简单的方法可以制作出黑白效果很好的东西 我确实读过这个question https stackoverflow com questions 2895319 how to add
  • 使用 dplyr::filter 创建 R 函数问题

    我查看了其他答案 但找不到使下面的代码起作用的解决方案 基本上 我正在创建一个函数inner join两个数据框和filter基于函数中输入的列 问题是filter部分功能不起作用 但是 如果我将过滤器从函数中取出并附加它 它就会起作用my
  • 调用 Bitmap.GetHicon 时 GDI+ 中发生一般错误

    为什么我收到 GDI 中发生一般错误 异常 IntPtr hicon tempBitmap GetHicon Icon bitmapIcon Icon FromHandle hicon return bitmapIcon 当我的应用程序运行
  • ARKit:如何判断用户的脸部是否与相机平行

    In my Swift ARKit SceneKit项目中 我需要判断前置摄像头中用户的脸部是否与摄像头平行 我能够通过比较左眼和右眼的距离来判断水平平行 使用faceAnchor leftEyeTransform和worldPositio
  • 从 Unity 中的另一个脚本调用 IEnumerator 方法并获取其返回值

    我正在使用 Unity 开发一个项目 我有这个文件 API cs 不附加到任何游戏对象 using UnityEngine using UnityEngine Networking using System Collections usin
  • 文件上传进度条[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 上传进度条 https stackoverflow com questions 849237 upload progress bar in php 任何人都可以建议一种在上传文件时包含文件上传
  • XMLHttpRequest.send 因相对路径而失败

    我在某些可能可以补救的事情上遇到了困难 我正在开发一个没有服务器的网站 这样做时 我在尝试通过 XMLHttpRequest 访问文件时遇到了问题 正如您在示例代码片段中看到的 我创建了变量 使用所需文件的相对路径打开它 然后使用发送函数
  • 如何在烧瓶模板中模拟“current_user”?

    我想嘲笑flask login s current user在模板渲染下 该函数返回当前登录的用户 现在我正在嘲笑AnnonymousUserMixin from flask login如果用户未经过身份验证 则默认返回该值 但这会导致各种
  • 一对多关系:使用 JPA 2.0 更新已删除的子项

    我有双向一对多关系 0 or 1 client 0 个或多个列表产品订单 应在两个实体上设置或取消设置该关系 在客户端 我想设置分配给客户端的产品订单列表 然后应将客户端设置 取消设置为自动选择的订单 在产品订单方面 我想设置分配订单的客户
  • 在 ConEMU 中显示 git 分支

    有没有办法在 ConEmu 中以视觉方式 背景或类似 在 git 中显示分支 Git 分支可以在普通的 cmd 或 Far Manager 提示符中可见 所有魔法都是通过特殊的 ANSI 序列完成的 必须选中 Inject ConEmuHk
  • 获取当前 IP 地址 Xamarin.Forms(跨平台)

    如何获取 Xamarin Forms 跨平台 的当前 IP 地址 WifiManager 我无法使用并且 WifiManager 不能包含吗 public string MyIp foreach IPAddress adress in Dn
  • 如何在UIViewController中设置parentViewController?

    UIViewController 的parentViewController 属性是只读的 但我正在嵌套自定义视图控制器并希望使用此属性 但是 由于它是只读的 并且我没有找到其他方法来设置此属性 我的问题是 如何do我设置的 显然 UINa
  • 我可以在我的应用程序中使用 Whatsapp 发送消息吗

    我想在我的应用程序中使用 Whatsapp 向其他手机发送消息 我在 Github 上看到过这个用于 Whatsapp 的公共 API here https github com venomous0x WhatsAPI 但我没有找到 iOS
  • 这是服务的实际用途吗?

    我需要运行一个在后台处理钩子的应用程序 问题是我必须以管理员身份在系统启动时自动启动它 我尝试使用 Windows 任务计划程序 但在某些系统上它不会以管理员身份启动程序 这会导致奇怪的行为 我从未编写过 Windows 服务 但这是否是创
  • 在 heatmap.2 中将行标签设置为斜体

    我正在尝试使用 R 函数将行标签设置为斜体heatmap 2 没有默认选项 我无法通过设置找到解决方法par font 3 例如 如何将行标签设置为斜体heatmap 2 set seed 123 data matrix sample 10
  • 有没有办法让两张纸保持同步?

    无法仅共享 Google 文档中的一张电子表格 因此 您必须共享整个电子表格 因此 我正在考虑编写一个脚本来同步两个工作表 每个工作表位于不同的电子表格中 我想使用一个函数来获取行作为数组来做到这一点 有更好的策略来做到这一点吗 实现此目的
  • 响应式图像对齐中心 bootstrap 3

    我使用 Bootstrap 3 制作目录 当在平板电脑上显示时 产品图像看起来很难看 因为它们的尺寸较小 500x500 并且在浏览器中的宽度为 767 像素 我想将图像放在屏幕中央 但由于某种原因我不能 谁来帮忙解决问题 有 center
  • 从辅助类将输出写入控制台

    我有一个运行帮助程序类的控制台命令 我想用以下命令编写输出 this gt info 从助手类到控制台 我的代码如下所示 App Http Console Commands SomeCommand php function handle H
  • 将 CSS 应用于括号(圆括号)中的段落中的单词

    各位 情况是这样的 中的话 span 元素来自资源键 括号内的 CSS 需要略有不同 例如 span Hello this a wonderful resource I mean it span 现在的要求是 我的意思是 应该比其他单词的字
  • 使用 SQL 函数在 ActiveRecord 中进行插入/更新

    我想在我的 Rails 应用程序中存储 IP 地址 v4 和 v6 我已经安装了MySQL 的扩展 http labs watchmouse com 2009 10 extending mysql 5 with ipv6 functions