Railsは自動的にto_iを呼び出します 一部のパラメータ メソッド、主にListing.find(params[:id])のように整数がパラメーターとして期待されるメソッド 。
ただし、文字列をパラメータとして受け入れることができる他のタイプの検索メソッドの場合は、手動でto_iを呼び出す必要があります。
Listing.find_by_id(params[:id].to_i)
Listing.find(:conditions => ["id = ?", params[:id].to_i])
MySQLに問題がない理由は、MySQLが実際にはto_iとなることを実行するためです。 最後に(つまり、データベースアダプタの問題ではなく、実際のデータベースサーバーの機能です)。