Techioz Blog

Ruby のセーフ ナビゲーション オペレーターで [] を使用する

概要

現在、次のようなコードがあります。

if match = request.path.match(/\A\/(?<slug>(?!admin|assets)\w+)/)
  match[:slug]
end

条件付きの場合、セーフ ナビゲーション オペレーター (2.3.0 で導入) を使用してこれを回避する方法はありますか?

解決策

通常の(砂糖を含まない)形を使用してください。

request.path.match(/\A\/(?<slug>(?!admin|assets)\w+)/)&.[](:slug)