0


devise gemを使用して認証するためのRails 3アプリケーションと2つのユーザーモデルがあります。
最初のクラスは StandartUser という名前で、2 番目のクラスは AdminUser という名前です。
デバイスコントローラーをオーバーライドできますが、reset_password_instructions に特定のメールを使用したいと考えています。
メールの件名を変更したいだけです。
StandartUser の場合 -> メールの件名は「reset password mail」にする必要があります
AdminUser の場合 -> メールの件名は「bla bla bla bla」にする必要があります
このアイデアをアプリケーションに実装するにはどうすればよいですか?

4

1 に答える 1

1

Devise ビューを生成すると、その内容を変更できます。これにより、コンテンツを変更できますが、件名を変更するには、独自のメーラーを作成し、devise に使用させることで、Devise メーラーをオーバーライドする必要があります。

class MyMailer < ActionMailer::Base
 default :from => "notifications@example.com"

 def welcome_email(user)
   @user = user
   @url  = "http://example.com/login"
   # your code you want to change subject
   if ...
     @subject = ...
   else
     @subject = ...
   end
   mail(:to => user.email, :subject => @subject)
 end
end

次に、デバイス構成で:

config.mailer = "MyMailer"
于 2012-12-27T18:59:03.457 に答える