0

ヘルパー ファイルの機能をアクション メーラーで使用できるようにするにはどうすればよいでしょうか。UserMailer というアクション メーラーと、sessions_helper.rb というヘルパーがあります。メソッドを UserMailer で使用できるようにするにはどうすればよいですか? 「インクルード」を試みましたが、次のエラーが発生します

取得しようとしているメソッドは「current_user」で、エラーが表示されます

undefined local variable or method `cookies' 

レール3.2.1を使用しています

ありがとう

4

3 に答える 3

4

あなたはこのようにあなたのメーラーでヘルパーをすることができます、

class Notifier <ActionMailer :: Base

  add_template_helper(ApplicationHelper)

  #..。

終わり

current_userに関する限り、メーラーにはActionControllerのようなCookieの概念はないと思います。より良い設計上の選択として、メーラーをcurrent_userから独立させておきます。メーラーは、current_userが誰であるかを気にしません(modelsと同様)。さらに言えば、メーラーはユーザーが誰であるかさえ気にせず、「メール、件名、本文」に関心があります。

したがって、メーラーメソッドを呼び出すときに、ユーザーオブジェクト(current_userまたはその他の任意の本文)を渡して、電子メールを取得し、件名と本文を生成できるようにすることができます。

于 2012-04-05T04:12:19.013 に答える
2

これでファイルを追加する必要がconfig/initializersありました:

class ActionMailer::Base
    helper MiscHelper
    helper ExtraMailHelper
end

必要に応じて他のヘルパーの行を追加すると思います。たとえば、次のようになります。

class ActionMailer::Base
    helper MiscHelper
    helper ExtraMailHelper
    helper SessionsHelper
end
于 2012-04-05T04:05:22.153 に答える
1

持っている特定のメーラーに特定のヘルパーを含めたい場合は、これを使用できます。

class RegistrationMailer < ActionMailer::Base

  include MyOwnHelper


  def method
  end
end
于 2012-04-05T06:14:10.533 に答える