1

そこで、コントローラーによって定期的に定義されたクラス変数を持つレポートをメールで送信したいと思います。しかし、メーラーでそれらを再度定義する必要がありますか?これを繰り返さない方法はありますか?私はそれをもっとモデルに移すことを考えましたが、結局それは同じ量の定義です。

4

1 に答える 1

0

それらを再度定義する必要はありません。コントローラーからパラメーターとしてメーラーメソッドに渡すことができます。

メールに@ivar1、@ ivar2、@ ivar3が必要だとすると、コントローラーからこれを実行するだけです。

MyMailer.some_email(@ivar1, @ivar2, @ivar3).deliver

編集:

あなたの質問(そして私の答え)をもう一度見てみると、私はそもそもそれを誤解したのではないかと思います。

私のソリューションでは、インスタンス変数を再定義する必要があります。値は正しく渡されますが、それでも次のことを行う必要があります。

def some_email(v1, v2, v3)
  @ivar1 = v1
  @ivar2 = v2
  @ivar3 = v3
end

コントローラで定義されている同じインスタンス変数を使用する方法はありません。

于 2012-09-11T18:18:38.410 に答える