sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué este :id en Rails no funciona con Postgresql pero sí con MySQL?

Rails llamará automáticamente a to_i en su parámetro para algunos métodos, principalmente aquellos en los que se espera un número entero como parámetro, como Listing.find(params[:id]) .

Sin embargo, para otros tipos de métodos de búsqueda que pueden aceptar cadenas como parámetros, deberá llamar manualmente a to_i

Listing.find_by_id(params[:id].to_i)
Listing.find(:conditions => ["id = ?", params[:id].to_i])

La razón por la que no tiene problemas con MySQL es que MySQL hace lo que en realidad sería un to_i en su extremo (es decir, no es un problema del adaptador de la base de datos, sino una capacidad del servidor de la base de datos real).