Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum funktioniert diese :id in Rails nicht mit Postgresql, aber mit MySQL?

Rails ruft automatisch to_i auf auf Ihrem Parameter für einige Methoden, hauptsächlich solche, bei denen eine Ganzzahl als Parameter erwartet wird, wie Listing.find(params[:id]) .

Für andere Arten von Suchmethoden, die Zeichenfolgen als Parameter akzeptieren können, müssen Sie to_i jedoch manuell aufrufen

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

Der Grund, warum Sie kein Problem mit MySQL haben, ist, dass MySQL etwas tut, was tatsächlich ein to_i wäre an seinem Ende (d.h. es ist kein Problem mit dem Datenbankadapter, sondern eher eine Fähigkeit des eigentlichen Datenbankservers).