【问题标题】:ActiveRecord query where with id discards the content after dashActiveRecord 查询其中 id 丢弃破折号后的内容
【发布时间】:2021-02-16 13:50:22
【问题描述】:

我刚刚在where 方法中遇到了一些相当令人惊讶的事情。当我查询 MyModel.where(id: '121-fake') 之类的内容时,它会在 SQL 中转换为 id = 121,即 ActiveRecord 似乎删除了破折号之后的内容。这似乎只发生在我使用id 查询时。谁能帮我指出这是在哪里实施的?谢谢。

【问题讨论】:

    标签: activerecord ruby-on-rails-5 ruby-on-rails-6


    【解决方案1】:

    id 字段可能是整数类型,所以ActiveRecord 基本上通过调用to_i 将参数转换为整数:

     '121-fake'.to_i # -> 121
    

    【讨论】:

      猜你喜欢
      • 2022-11-21
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      相关资源
      最近更新 更多