heroku + Rails5でアプリケーションを開発し、リクエストを受ける前段に Cloudflare を利用している。
Cloudflare は DNS, Crypto で SSL, CDN の設定を利用している。
しかし、 Cloudflare を使い始めたからか IPアドレスが validation エラーになってしまった。
デバッグして中身を見ていると、IP アドレスが以下のようになっていた。(前半の IP は書き換えてる)
p ip_address = request.env['HTTP_X_FORWARDED_FOR'] || request.remote_ip # => "100.10.10.150, 103.22.200.116"
カンマの前半が実際のユーザの IP アドレスで、後半が Cloudflare の IP アドレスっぽい。
103.22.200.116 - Japan - Cloudflare - IP address location and data
ユーザの IP アドレスを取得したかったら ip_address.split(",")[0]
でいけると思うけど、だいぶ不安だ...。