Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi ce :id dans Rails ne fonctionne-t-il pas avec Postgresql mais fonctionne-t-il avec MySQL ?

Rails appellera automatiquement to_i sur votre paramètre pour certains méthodes, principalement celles où un entier est attendu comme paramètre, comme Listing.find(params[:id]) .

Cependant, pour les autres types de méthodes de recherche qui peuvent accepter des chaînes comme paramètres, vous devrez appeler manuellement to_i

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

La raison pour laquelle vous n'avez pas de problème avec MySQL est que MySQL fait ce qui serait en fait un to_i à sa fin (c'est-à-dire qu'il ne s'agit pas d'un problème d'adaptateur de base de données, mais plutôt d'une capacité du serveur de base de données réel).