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 を通したときに警告を無視してくれるようになる。
「警告やエラーの対処にはその時々でベストな対処は変わるんだなー」という印象。また、既存コードについてゼロベースで考えるのもやっぱり大事なので意識していこうと思った。