Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que este :id no Rails não funciona com o Postgresql, mas funciona com o MySQL?


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).