ActiveRecord查询,其中id为的将丢弃破折号后的内容

ActiveRecord查询,其中id为的将丢弃破折号后的内容,activerecord,ruby-on-rails-5,ruby-on-rails-6,Activerecord,Ruby On Rails 5,Ruby On Rails 6,我刚刚在where方法中遇到了一些相当令人惊讶的事情。当我查询类似于MyModel.where(id:'121 false')的内容时,它会在SQL中转换为id=121,即ActiveRecord似乎会删除破折号后面的内容。这似乎只有在我使用id进行查询时才会发生。有人能帮我指出这是在哪里实现的吗?谢谢。id字段可能是整数类型,因此ActiveRecord基本上通过调用以下命令将参数强制转换为整数: '121-fake'.to_i # -> 121

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

id字段可能是整数类型,因此
ActiveRecord
基本上通过调用以下命令将参数强制转换为整数:

 '121-fake'.to_i # -> 121