Rails chamará automaticamente
to_i
em seu parâmetro para algumas métodos, principalmente aqueles onde um número inteiro é esperado como parâmetro, como Listing.find(params[:id])
. No entanto, para outros tipos de métodos de pesquisa que podem aceitar strings como parâmetros, você precisará chamar manualmente
to_i
Listing.find_by_id(params[:id].to_i)
Listing.find(:conditions => ["id = ?", params[:id].to_i])
A razão pela qual você não está tendo problemas com o MySQL é que o MySQL faz o que na verdade seria um
to_i
em sua extremidade (ou seja, não é um problema de adaptador de banco de dados, mas sim uma capacidade do servidor de banco de dados real).