update.map(またはcollect)はブロックの戻り値を集めた配列を生成してくれる便利なメソッドです。ブロックの途中でnextを使用すると意図せずnilが入ってしまう場合があるため、気をつける必要があります。以下のような数字の配列から偶数を取り出すメソッドを作成したとします。endend上記メソッドに対し、1〜5の整数の配列を引数に与えてみます。この場合、2と4の配列が返ってくることが期待する結果です。nil]2と4は期待通り返ってきたのですが、それ以外の要素がnilになってしまいました。mapは配列の各要素に対して処理を行い、その結果を配列にして返却するため、もとの配列の数と生成された配列の要素数は等しくなります。そのため、途中でnextを入れて処理をスキップしたつもりでも、結果の配列にnilがセットされてしまうのです。そこで、もしnilを配列に入れたくないのであれば、以下のようにmapした後にcompactを行うことで回避することができます。4]mapとcompactを使用しない別の方法としては、selectやrejectを使うのもありです。使えない、使わない方が良いケースもあるので状況に応じてになりますが、今回のケースではこちらの方がシンプルですね。endend意図しないnilが含まれているとバグにも繋がるため、mapを使用する際はぜひ意識しておくと良いと思います。upLoginユーザーは見つかりませんでした。