activerecord - ActiveRecord 查询其中 id 丢弃破折号后的内容
问题描述
我刚刚遇到了一些相当令人惊讶的where
方法。当我查询类似MyModel.where(id: '121-fake')
的内容时,它会被翻译成id = 121
SQL,即 ActiveRecord 似乎删除了破折号之后的内容。这似乎只发生在我使用id
. 谁能帮我指出这是在哪里实施的?谢谢。
解决方案
该id
字段可能是整数类型,因此ActiveRecord
基本上通过调用将参数转换为整数to_i
:
'121-fake'.to_i # -> 121
推荐阅读
- c# - 使用 Linq 获取不同的属性
- php - 如何以只读模式打开项目?
- ruby-on-rails - Rails Grape ActionController::RoutingError (没有路由匹配 [GET] "/api/v1/user_locations"):
- zebra-printers - 我想使用 ZPL 从 Zebra 打印机的标签右上角打印增量计数
- c# - C#无法从导入的库中反序列化类的对象
- powershell - 从自定义属性中列出的每个 CN 获取电子邮件地址
- html - HTML/VBA 在特定时间自动发送电子邮件
- python - 分层组 Django 查询
- r - 使用 ifelse 有条件地在 tidyr r 中使用单独
- google-cloud-platform - GSuite OAuth 客户端 ID