BackEnd

configに追記したのに、rails runnerが起動しない?

投稿日:2017年8月18日 更新日:

はじめに

tonnyです。
最近はVue.js関連の記事を書いておりましたが、今回はRailsに関して困ったことを記載したいと思います。
割と短めです。

環境

  • Ruby: 2.4.1
  • Ruby on Rails: 5.1.3
  • Mac OS X: 10.10.5

rails runnerを使用してみる

rails runner コマンドは、Railsでバッチ処理する際に使用します。
すでに多くの方が記事にされておりますので、簡単にまとめたいと思います。
runner (リファレンス)

バッチファイルの作成

バッチファイルを作成します。
人や組織によるかと思いますが、 lib/tasks 以下に作成することが一般的なようです。
簡単なバッチを作成します。

configにパスを追記

lib はRailsで自動的にロードされないので、 config/application.rb に追記してあげます。

実行

これでパスに追加されたので、下記のコマンドで実行します。

ところが…

config に追記しているはずなのに、いつまでたっても uninitialized constant のエラーが消えません。

ちなみに、 autoload_path を確認するコマンドは下記になります。

解決方法

結論からいうと、 rails runner コマンドの裏で動いているSpringが悪さをしていたようです。
こちらの記事を参考にさせていただきました。
rails runnerでconfig設定値が再読み込みされない問題の対処方法

詳細はよく分かっておりませんが、Spring経由で実行するとキャッシュ?されてしまうのかな、と思っています。

おまけ(runnerコマンドでバッチに引数を渡す)

あまりやらないかもしれませんが、コマンドからバッチに引数を渡す場合は、 "" で囲います。

さいごに

今回はRailsのエラーに関する備忘録になります。

私自身が困ったエラーも今後はまとめていこうと思いますので、よろしくお願いします。

blog-page_footer_336




blog-page_footer_336




-BackEnd
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Go言語の基礎〜基本構文その1〜

1 はじめに2 変数2.1 変数の定義2.2 暗黙的な定義2.3 varと暗黙的な定義2.4 ローカル変数とパッケージ変数3 定数3.1 const3.2 iota4 関数4.1 関数定義の基本4.2 ...

rails

私たちのFactoryGirlとRspecの使用ルール その1

1 はじめに2 そもそもなぜ基本ルールなどを作成しようとしたのか?3 Rspec編3.1 describe、context、itの階層で使用する3.2 10個以上のテストレコードを作成したい場合は、ト ...

Go言語

[Go初心者]Interfaceについて学習

1 はじめに2 interfaceとは3 interfaceのメリット3.1 インターフェースを使うとコードの共通化ができる3.2 インターフェースを使うと実装を隠蔽することができる3.3 インターフ ...

Laravelのchunkメソッドとcursorメソッドのメモリ使用量

1 はじめに2 テスト用のデータ準備3 get()4 chunk()5 chunkById()6 cursor()7 さいごに8 おすすめ書籍 はじめに テーブルの全レコードに一括で処理を行うバッチを ...

laravel logo

LaravelのArtisanコマンドを自作する

1 はじめに2 コマンドの作成方法3 コマンドの実装3.1 文字列出力3.2 引数3.3 オプション3.4 入力を使用した対話型3.4.1 ask()メソッド3.4.2 secret()メソッド3.4 ...

フォロー

blog-page_side_responsive

2017年8月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。