Hanamiでcustom helper

Custom Helpers – Hanami を参考に独自のヘルパーを作成したが、「NameError: uninitialized constant Helpers」が表示されてハマった。
原因は、Custom Helpers Guide – load_paths order issue #112 で書かれている通り、apps/web/application.rb の load_paths に記述する時に、helpersを最初に記述しておかないとダメだった。自分の場合はhelpersの記述を一番最後にしていたのでエラーが表示されていた。ちなみに同ファイルの「view.prepare」の記述については、特に順番は関係ない。

■設定のメモ

apps/web/application.rb
———————————————–
      view.prepare do
        include Hanami::Helpers # Hanamiのヘルパーモジュール読み込み
        include Web::Assets::Helpers # app/web/assets/helpersを作成して利用想定?
        include Web::Helpers::FormatDate # 今回カスタムヘルパーとして新しく記述した
      end
———————————————–

■注意事項

load_pathsとかの設定をしたら、Cmd-C、bundle exec hanami sで再起動すること。設定系なので記述したものがうまく反映されない場合があった。

■その他メモ

・appごとにヘルパー作成するのもよし、コードを共通化する場所に置いて使うかもよし。「In our settings (apps/web/application.rb), there is a code block that allows to share the code for all the views of our application.」 – Share Code – Hanami
・helpersを設置している方のコード。この方はload_pathsは使わずにヘルパー使いたい場所でincludeして読み込んでいる。 nfilzi/housing-list
・ヘルパーは全然関係ないけど、、.、Hanamiのアーキテクチャーの考え方とDry Rubyの実装方法 hanami-architecture – hanami