railsのヘルパーは基本的にviewにパラメータを渡すために使ったり,renderを行うためのメソッドを定義するためのものです。
ruby
1self.class.helpers.ヘルパーメソッド名
上記を使えば一応どこからでも呼び出せますが,modelと関係ないロジックかつ他のmodelでも使いまわしたいメソッドなどは,concernという階層を作ってそこにmoduleを作るのが一般的です。
ですが,今回のメソッドはUserモデルのパラメータを利用しており,modelと関係あるロジックなのでUserモデルの中にfullnameメソッドを書くのが普通だと思います。
ruby
1
2class User < ActiveRecord::Base
3 def full_name
4 "#{self.last_name} #{self.first_name}"
5 end
6end
うまく読み込めない理由はおそらくインスタンスからアクセスしてないからです。質問者様の例だとmoduleからimportされた関数はインスタンスメソッドとして定義されます。
controllerなどでfull_name(user)としていないでしょうか?
この宣言の仕方の場合user.full_name(user)
でアクセスする必要があり,結局のところ,インスタンスメソッドとしてincludeした場合userインスタンスを使うので,モジュールに切り出す必要性はなくモデルに定義するので十分ということになります。full_nameはメソッドの中で引数userをreciever(インスタンスメソッドの呼び出し元にするインスタンス)にしているので,必ずそのuserのインスタンスを取得できる状態になっているため,関数を切り分けてincludeする理由はモデルのファイルが肥大化した時くらいだと思います。
また上記が原因でなければAdmin::UsersHelperの定義が他に存在して上書きされている(今回は上記の原因だと思いますがわりとよくある原因です)ことが考えられます。
もしくは,railsのパスが読み込まれていない階層にファイルを置いている可能性もあります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。