Rails 5 で自分で作ったモジュールを使いたい
独自のロジックを用いる場合など、Rails 5
で自前のモジュールを使いたい場合があると思います。その場合、どのようにしたらいいかというお話です。
結論
以下の全てを満たせば OK です。
- 命名規則に沿ってモジュールを作る
app/lib
にそのモジュールを置く- 使用したいコントローラで
include
する
具体例
1. 命名規則に沿ってモジュールを作る
以下の命名規則に従ってモジュールを作ります。
- ファイル名は小文字
- 単語の区切りは
_
(アンダーバー) - クラス名(モジュール名)は
アッパーキャメルケース
例えば、モジュール名がFooBar
の場合、ファイル名はfoo_bar.rb
となります。
※こちらのページを参考にしました(感謝)。
2. app/lib
にそのモジュールを置く
作ったモジュール(ファイル)をapp/lib
に置きます。階層構造を取る場合は命名規則が少々異なりますので、上掲の記事を参考にして下さい。
3. 使用したいコントローラでinclude
する
例えば、hogehoge_controller.rb
でそのモジュール(仮にfoo_bar.rb
とします)を使いたい場合には以下のようにinclude
します。これで当該モジュールが使えるようになりました。
class HogehogeController < ApplicationController include FooBar def index end ... end
補足
Rails 4
時代(?)の、「config/application.rb
に追加で読み込む場所を明示する」必要はないようです- ドキュメントなどをまだ精読していないのでバッドノウハウのおそれがあります X-(