Rails Aborted! Unknown Verison 5.2と出たら

###rails newの際にversion指定忘れて作成
ローカルのRails versionが5.2.0の状態で、version指定をせずに、作成したアプリでGemfileをRails Tutorialに沿って書き換えてgit push heroku masterした結果がこちら

```terminal
Rails Aborted !
Unknown Version 5.2
```

###解決策
[bundle exec rails generate not working](https://stackoverflow.com/questions/50263254/bundle-exec-rails-generate-not-working)を参考に
config/application.rb を開き

```ruby
config.load_defaults 5.2 #←を5.1に変更
```

Rails newにてversion指定をしていないと、その後gemfileにてversionを指定しても、configの設定にて5.2を呼びなさいと指定されてる箇所があるので、ここを直す必要がある。

###Rails verを指定しなかった過ちは続く
お次に出くわすエラーがこちら

```terminal
NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0000000000>
```

Active_storageはrails5.2にて追加された機能。その為、5.1環境に指定し忘れるとこれにまつわるその他諸々の初期設定を全てオフにしなければならない。

###一つ目のActive_storage設定オフ
development.rb/production.rbにて

```ruby
config.active_storage.service = :local
```
この記述を削除、あるいはコメントアウトする。
そしてgit push heroku masterを実行すると

```terminal
Sprockets::FileNotFound: couldn't find file 'activestorage' with type 'application/javascript'
remote:        Checked in these paths: 
remote:          /tmp/build_0c6dfb44b8e17ab00878427b9f11286d/app/assets/config
remote:          /tmp/build_0c6dfb44b8e17ab00878427b9f11286d/app/assets/images
remote:          /tmp/build_0c6dfb44b8e17ab00878427b9f11286d/app/assets/javascripts
```
なんとassetsにまで残骸がある模様
application.jsファイルにある

```
//=require active_storage
```
これを削除
加えてconfig/storage.ymlのファイルをstorage.ymlごと削除

これで無事に git push heroku masterは通るようになる。
githubでは問題なく通ってしまう為、盲点かもしれない。

###これで解決したわけではない
早速アプリの内容を改変して、サーバーを立ち上げようと立ち上げると

```
app error: Missing secret_token and secret_key_base for development' environment, set these values in config/secrets.yml (RuntimeError)
```

[rails s が失敗してERROR RuntimeError: Missing `secret_key_base` と言われました。](https://qiita.com/pugiemonn/items/3a841515a14b7a6c8d88)こちらの記事を参考に
config/secrets.ymlを作成して
`bundle exec rake secret`にて作成したkeyを

```yml
development:
  secret_key_base: 1232313213213213131231231231231231
```
以下のように貼り付けることで解決。
かに思われた。
`rails s`を再度実行すると

```
oMethodError in Rails::WelcomeController#index
undefined method `verbose_query_logs=' for ActiveRecord::Base:Class
```
が出現。
ググってもこのようなエラーは類がなく、しかし`ActiveRecord`また貴様に関するエラーか・・！

###解決策
ググり方を変え、そもそもこのメソッド`verbose_query_logs`は何なのかを検索。
[Rails 5.2新機能を先行チェック！Active Storage/ダイレクトアップロード/Early Hintsほか（翻訳）](https://techracho.bpsinc.jp/hachi8833/2018_02_06/52179)にて該当部分を発見。
config/environment/development.rbにて

```ruby
 # Highlight code that triggered database queries in logs.
  config.active_record.verbose_query_logs = true #これをfalseに変更
```
こんなところにもまだ設定が残っていたのかと・・falseに変更することで無事に`rails s`でページが表示された。

###結論
最初にversion指定を忘れて作った段階で、作成したアプリをその場で削除して一から作り直す方が良い

###追記
`rails test`を実行すると

```terminal

/Users/Watashida/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.1.4/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `active_storage' for #<Rails::Application::Configuration:0x00007fda90ddfd48> (NoMethodError)
	from /Users/Watashida/environment/sample_app/config/environments/test.rb:32:in `block in <main>'
```

まだ残っていた

config/environments/test.rbにて

```ruby
# Store uploaded files on the local file system in a temporary directory
   config.active_storage.service = :test #これをコメントアウト
```
最後のactive_storage設定をコメントアウト。

改めて`rails test`を実行すると

```terminal
# Running:

Run options: --seed 43459

# Running:



Finished in 0.001305s, 0.0000 runs/s, 0.0000 assertions/s.

0 runs, 0 assertions, 0 failures, 0 errors, 0 skips



Finished in 0.227700s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
```

エラー無し。