Just do IT

思うは招く

Rubocop Rails/UnknownEnv 警告の対処

Rails で Rubocop を走らせたところ、以下の警告が出た。

Rails/UnknownEnv: Unknown environment staging?.
        if Rails.env.production? && Rails.env.staging?

Rails.env.staging?という部分の記述に関しての警告で、staging 環境を認識してくれていないようだった。

解決策1

Support custom environment names for Rails/UnknownEnv · Issue #4956 · rubocop-hq/rubocop

上記の Issue に書かれているとおり、.rubocop.ymlに環境を認識してくれるよう記述をする。

Rails/UnknownEnv:
  Environments:
    - production
    - development
    - test
    - staging

解決策2

Rails/UnknownEnv:
  Environments:
    - production
    - development
    - test
    - staging

上記を記述することで、 Rails/UnknownEnv 警告は出なくなった。しかし、開発チームで「そもそもRails.env.staging?という記述自体、どうなんだろう??」という話になった。

  • ステージング環境は、本番環境と同じ環境であることに意味がある
  • Rails.env.staging? で分岐するとあまり意味がないのではないか

という感じになり、Environments の記述もなんかわかりにくいね、ということで Environments の記述を削除。そして.rubocop_todo.ymlに警告が出たファイル名を記述して、いったん警告を無視するようにした。

.rubocop_todo.ymlには、警告がでたファイル名を記述すると、Rubocop を通したときに警告を無視してくれるようになる。

「警告やエラーの対処にはその時々でベストな対処は変わるんだなー」という印象。また、既存コードについてゼロベースで考えるのもやっぱり大事なので意識していこうと思った。