3

ヘルパー メソッドcurrent_userは次のように定義され、ヘルパーとして使用可能になりますApplicationController

class ApplicationController < ActionController::Base
  helper_method :current_user
    def current_user
        return @current_user if defined?(@current_user)
        @current_user = current_user_session && current_user_session.record
    end
end

私の質問はcurrent_user、メーラー テンプレートでヘルパー メソッドを使用する方法です (明らかに常に を返しnilますが、それに依存するパーシャルをレンダリングしようとしています)。

通常、メーラーでヘルパーを使いたい場合は のようにしますadd_template_helper(SongsHelper)が、ヘルパーはモジュールではなくクラスで定義されているため、どうすればよいかわかりません

4

1 に答える 1

4

ユーザーを変数に渡し、それをテンプレートで使用するのが好きです。コントローラーへの呼び出しを渡しますcurrent_user(私は通常、そこからメールを配信します)。

もう 1 つの解決策はcurrent_user、サポートするメソッドをモジュールに入れ、それを ApplicationController の両方に混ぜてhelper、ActionMailer::Base から継承するクラスのメソッドと一緒に使用することです。この方法に興味がある場合は、ドキュメントを参照してください。

于 2010-05-14T02:54:27.450 に答える