Rails автоматически вызовет to_i
для вашего параметра для некоторых методов, в основном тех, в которых в качестве параметра ожидается целое число, например Listing.find(params[:id])
.
Однако для других типовметодов поиска, которые могут принимать строки в качестве параметров, вам нужно вручную вызвать to_i
Listing.find_by_id(params[:id].to_i)
Listing.find(:conditions => ["id = ?", params[:id].to_i])
Причина, по которой у вас нет проблем с MySQL, заключается в том, что MySQL делает то, что в действительности будетto_i
в его конце (то есть это не проблема адаптера базы данных, а скорее возможность реального сервера базы данных).