带有 id 的 ActiveRecord 查询丢弃破折号后的内容
ActiveRecord query where with id discards the content after dash
我刚刚在 where
方法中遇到了一些令人惊讶的事情。当我查询类似 MyModel.where(id: '121-fake')
的内容时,它会在 SQL 中转换为 id = 121
,即 ActiveRecord 似乎删除了破折号之后的内容。这似乎只在我使用 id
查询时发生。谁能帮我指出这是在哪里实施的?谢谢
id
字段可能是整数类型,所以ActiveRecord
基本上通过调用to_i
:
将参数转换为整数
'121-fake'.to_i # -> 121
我刚刚在 where
方法中遇到了一些令人惊讶的事情。当我查询类似 MyModel.where(id: '121-fake')
的内容时,它会在 SQL 中转换为 id = 121
,即 ActiveRecord 似乎删除了破折号之后的内容。这似乎只在我使用 id
查询时发生。谁能帮我指出这是在哪里实施的?谢谢
id
字段可能是整数类型,所以ActiveRecord
基本上通过调用to_i
:
'121-fake'.to_i # -> 121