5

メールの送信先のユーザーに応じてブール値を返すメーラー ビューからメソッドにアクセスできるようにしたいと考えています。

たとえば、ユーザーがis_subscribertrue または false の属性を持っているとします。メソッドには次のようなものが含まれます。

def show_banner?
  FeatureManager.is_feature_available?(:subscription_banners) && !user.is_subscriber
end

メーラー ビュー内からこのメソッドにアクセスしたいと考えています。

問題は、アプリに多数のメーラー (UserMailer、SubscriptionMailer、FollowUpMailer) があり、各メーラーのインスタンス変数 @user に依存するのは少し危険に思えることです。

この例のように「to」フィールドからメールアドレスにアクセスして、メールアドレスでユーザーを見つける方法はありますか?

mail :to => @user.email, :subject => I18n.t('welcome_mail.subject')

それを行うのは良い考えですか、それともそのようなヘルパーメソッドを作成するより一般的な方法はありますか?

4

1 に答える 1

12

actionviewで @_message を使用すると、「to」、「from」などのフィールドにアクセスできるメッセージ オブジェクトにアクセスできます。

すべてのメールに登録解除ボタンが必要な場合があったので、メーラー全体で使用されるレイアウトに配置しました。上記のソリューションを使用して、メール受信者を見つけ、それぞれのメールの購読解除を実装しました。

于 2013-04-04T11:17:38.507 に答える