8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[RuboCop] UnknownEnvironment 警告の解決方法

Last updated at Posted at 2020-01-28

対象 ver: rubocop (0.71.0)

テストで Rubocop が警告を吐く [ C: Rails/UnknownEnv: Unknown environment staging?. ]

Rails アプリに staging 等の環境を追加して Rails.env.staging? といった処理を書くと、RuboCop に警告されます

出力されたログ ※一部を省略しています

$ rails rubocop

Inspecting 50 files
.....................C............................

Offenses:
app/controllers/hoge_controller.rb:51:60: C: Rails/UnknownEnv: Unknown environment staging?.
        if Rails.env.production? && Rails.env.staging?
                                              ^^^^^^^^
50 files inspected, 1 offense detected

どうやらデフォルト以外の環境を自動で認識してくれない模様

解決策

.rubocop.yml に以下を追加

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

※上記のオプションを追加する場合、デフォルトの環境( test, development, production )も併せて記述する必要があるので注意してください

いきさつ

※以下は興味のある人向け

現在作成している Rails アプリには、デフォルトで定義されている

  • test
  • development
  • production

に加えて

  • staging

環境を定義しており、AWS 上で問題なく稼働していました。
しかし、コード中に

if Rails.env.production? && Rails.env.staging?

という一行を追加したところ例の警告が...

(staging 環境が正しく定義できていないのか?でも環境動いてるし...)
などと思いながら調べていたところ、Issue を発見。

Issue の情報をもとに yml に例の設定を追加したところ、無事にテストが通りました。

以上

内容に間違い等ありましたらコメントでご指摘ください。
この記事が参考になりましたら幸いです。

参考

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?