メソッドをhelperからdecoratorに移動すると undefined method `term' のエラーが発生する


もともとuser_helper.rbに記述していたメソッドを新しく作成したcareer_decorator.rbに移動したいのですが、undefined
method `term' for #のエラーがでます。  
いくら考えて、実行しても改善できないので質問させていただきました。  
以下は現状のコードです

career_decorator.rb (user_helper.rbから移動したコード)

[code]

    module CareerDecorator
    
      def term
        start_date = l(start_date, format: :term)
    
        if end_date.blank?
          "#{start_date} - #{t('date.formats.ongoing')}"
        else
          "#{start_date} - #{l(end_date, format: :term)}"
        end
      end
    
      def distance_of_term
        if end_date.blank?
          t('datetime.distance_in_words.ongoing')
        else
          distance_of_time_in_words(start_date, end_date)
        end
      end
    end
    
[/code]

app/views/users/user.html.slim

[code]

    @user.careers.order('start_date desc, end_date desc').each do |career|
      tr
        td
          p = link_to career.term, edit_user_career_path(user_id: @user, id: career)
          p = career.distance_of_term
          td = career.title
    
[/code]

user_helper.rb（もともとはこのファイルの以下のようなtermとdestance_of_termメソッドがあり、これをcareer_decorator.rbに移動したい）

[code]

    module UsersHelper
      def term(career)
        start_date = l(career.start_date, format: :term)
    
          if career.end_date.blank?
            "#{start_date} - #{t('date.formats.ongoing')}"
          else
            "#{start_date} - #{l(career.end_date, format: :term)}"
          end
        end
    
      def distance_of_term(career)
        if career.end_date.blank?
          t('datetime.distance_in_words.ongoing')
        else
          distance_of_time_in_words(career.start_date, career.end_date)
        end
      end
    end
    
[/code]

careerがtermメソッドを持っていないことはなんとなくわかっていますがどうしたら良いのかわかりません。

自分なりの考え

  * helperからdecoratorに該当メソッドを移動する時にコピペだけだとだめっぽい=>decoratorのメソッドを変更するのか
  * モデルのアソシエーション操作が必要なのか?
  * decorator.rbは手打ちではなくコマンドで作成しないといけないのか？？=> rails g decorator careerとやったらgem周りでエラーが出ました
  * careerオブジェクトがtermメソッドを持っていない
  * users_controller.rbのshowにcareerのインスタンスを作成する必要がありそう

ヒントいただければ幸いです。




回答をしてくださった方々ありがとうございます。検索しながら行い、なんとか自力でエラー回避できましたので、参考になればと思い自分で回答させていただきます。  
今回の問題はDecoratorを呼び出せていなかったことだったのですが、以下のように記述することでエラー回避できるようになりました!

[code]

    @user.careers.order('start_date desc, end_date desc').each do|career| 
    p = link_to ActiveDecorator::Decorator.instance.decorate(career).term
[/code]

>
> ActiveDecorator::Decorator.instance.decorate(career).termとすることで、decoratorを適用させるよ‌​という役割になるそうです。




回答をしてくださった方々ありがとうございます。検索しながら行い、なんとか自力でエラー回避できましたので、参考になればと思い自分で回答させていただきます。  
今回の問題はDecoratorを呼び出せていなかったことだったのですが、以下のように記述することでエラー回避できるようになりました!

[code]

    @user.careers.order('start_date desc, end_date desc').each do|career| 
    p = link_to ActiveDecorator::Decorator.instance.decorate(career).term
[/code]

>
> ActiveDecorator::Decorator.instance.decorate(career).termとすることで、decoratorを適用させるよ‌​という役割になるそうです。

