メーラーでインスタンス変数を設定するためのクリーンで従来の方法は何ですか? initialize
現在、メソッドを再定義しMailer
、その後、継承するメーラーで必要に応じて特定のインスタンス変数を上書きしていますMailer
。
class Mailer < ActionMailer::Base
attr_reader :ivar
def initialize
super
@ivar = :blah
...
end
end
これnew
はメーラーのプライベートな方法であるため、私には奇妙に思えます。たとえば、Rails コンソールでこれらを取得しようとすると、次の手順を実行する必要があります。
mailer = Mailer.send(:new)
mailer.ivar
default
次のようにハッシュに追加することも検討しました。
class Mailer < ActionMailer::Base
default ivar: :blah,
...
end
唯一の問題は、ivar を取得するために次のようなメソッドを作成する必要があることです。
def default_getter(ivar)
self.class.default[ivar]
end
どちらの方法も私には特にきれいに見えません。クラス変数の使用を検討しましたが、誰かがよりクリーンな方法を提案できるかどうか疑問に思っています。ありがとう。