1

ユーザーにメールを送信していますが、ApplicationController にある関数を呼び出す必要があります。単純に思えますが、私の人生では、これを行う方法に関するドキュメントを見つけることができません。私は ApplicationHelper 関数に問題なくアクセスできますが、それは私が必要としていることにあまり役立っていません...誰でも主題に当てることができる光を得ましたか?

4

2 に答える 2

3

これは非常にプロジェクト固有のケースであるため、これが誰かの助けになるかどうかはわかりませんが、これを解決するために私がしたことは次のとおりです。

  1. メーラーに必要な機能を ApplicationHelper に移動します。
  2. include ApplicationHelperMailer クラスと ApplicationController に追加します。
  3. 必要なロジックについては、未定義のメソッドエラーを返さないようif !provider_signed_in?に更新しましたif defined?(provider_signed_in?) && !provider_signed_in?...プロバイダーがサインインしている場合に必要なロジックは、メーラーには関係ありませんでした (プロバイダーはこの電子メールを受信しないため)。そのため、サイトで使用している他の場所では問題ありませんが、そこでは問題ありませんでした。

これについて考えるのを手伝ってくれて、Rahul に感謝します。

于 2014-02-03T17:28:45.950 に答える
0

メーラーにヘルパーを含めるためにメーラーで使用できるメソッドがhelperあります。

# mailer_helper.rb

module MailerHelper
  def your_method
    # do whatever you want to do here.
  end
end

# in your mailer file

class WelcomeMailer < ActionMailer::Base
  helper MailerHelper
  .....
end

それだけでなく、ビューでもメソッドを使用できるようになりました。

于 2014-02-03T06:19:09.730 に答える