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
となることを実行するためです。 最後に(つまり、データベースアダプタの問題ではなく、実際のデータベースサーバーの機能です)。