У меня есть приложение Ruby on Rails с моделью Project
, которая имеет атрибут wcag_version
типа float.
![Screenshot](https://i.stack.imgur.com/Gx8eQ.png)
Iесть запись с wcag_version = 2
и запись с wcag_version = 2.1
:
![Screenshot](https://i.stack.imgur.com/zmLyd.png)
Что я заметил, так это то, что Rails находит запись с wcag_version = 2
, используя Project.where(wcag_version: 2.0)
:
[4] pry(#<WcagElementsController>)> Project.where(wcag_version: 2.0)
=> [
[0] #<Project:0x007f9fa900c6e8> { :id => 1 ... }
Но он не находит запись с wcag_version = 2.1
, используя Project.where(wcag_version: 2.1)
:
[5] pry(#<WcagElementsController>)> Project.where(wcag_version: 2.1)
=> []
Кажется, это проблема SQL, а не проблема Railsхотя.Сгенерированный SQL:
[6] pry(#<WcagElementsController>)> Project.where(wcag_version: 2.1).to_sql
=> "SELECT `projects`.* FROM `projects` WHERE `projects`.`wcag_version` = 2.1 ORDER BY `projects`.`name` ASC"
, который ничего не возвращает, если я выполню его вручную непосредственно в базе данных:
![Screenshot](https://i.stack.imgur.com/bptWb.png)
Что здесь происходит?Кстати, я использую MySQL.