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のエラーに関する備忘録になります。

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

page_footer_300rect




page_footer_300rect




-BackEnd
-

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

rails

Railsの低レベルキャッシュを使ってみた

1 はじめに1.1 環境2 ドキュメント3 準備3.1 configの確認3.2 キャッシュストア4 使ってみる4.1 #read、#write、#delete4.2 #fetch4.3 オプション4 ...

rails

Ruby2.4でCookieを手動で復号する際に発生したエラーの対処

1 はじめに1.1 前提条件2 発生したエラー2.1 実際のコード2.2 エラー詳細2.3 原因3 どう対処したか3.1 修正後のコード はじめに こんにちは、onoです。 現在開発中のアプリケーショ ...

aws

ALB+EC2な環境でhttpをhttpsにリダイレクトする

1 はじめに1.1 前提条件2 ALBの設定3 Nginxの設定3.1 注意点4 さいごに はじめに httpsに対応済みのWebサイトの場合、httpでアクセスされた時にhttpsでリダイレクトする ...

Vue.js入門その4〜TODOアプリにサーバーサイドを追加してみる〜

1 はじめに2 準備2.1 今回作成したいもの2.2 環境構築3 サーバーサイド3.1 DB3.2 メモ:rails generateで余分なファイルを生成しない3.3 作成したファイル4 ビューの作 ...

rails

RailsでERBからJavaScriptにhashを渡す方法

1 はじめに2 カスタムデータ属性とは3 実装例3.1 コントローラの実装3.2 ビューの実装3.3 実行結果4 さいごに はじめに 以前、選択したプルダウンメニューに応じて別のプルダウンメニューの内 ...

page_side_300rect

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。
下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。

アプリ情報

私たちは、目標を達成したい方を応援する、TODOアプリもリリースしております。
下記のアイコンから無料でダウンロードできます。

リンク

follow us in feedly
2017年8月
« 7月 9月 »
 12345
6789101112
13141516171819
20212223242526
2728293031