sql >> Database >  >> RDS >> Mysql

Waarom werkt dit :id in Rails niet met Postgresql maar wel met MySQL?

Rails belt automatisch to_i op uw parameter voor sommige methoden, voornamelijk die waarbij een geheel getal als parameter wordt verwacht, zoals Listing.find(params[:id]) .

Voor andere soorten zoekmethoden die strings als parameters kunnen accepteren, moet u echter handmatig to_i aanroepen

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

De reden dat je geen probleem hebt met MySQL is dat MySQL doet wat in feite een to_i zou zijn op zijn einde (d.w.z. het is geen probleem met de databaseadapter, maar eerder een mogelijkheid van de eigenlijke databaseserver).




  1. Oracle - Hoe de gebruiker te dwingen meerdere rijen in te voegen

  2. Vergelijkingsprobleem met Oracle PL/SQL-tekenreeksen

  3. MySQL Select JOIN 3 Tables

  4. Django IntegerRangeField Validatie mislukt