2012-12-27 44 views
0


設計我有一個導軌3的應用和2用戶模型用於認證使用設計的寶石。
命名爲StandartUser,命名爲ADMINUSER第二頭等艙。
我可以覆蓋設計的控制器,但我想使用特定的郵件進行reset_password_instructions。
只是想改變郵件主題。
對於StandartUser - >郵件主題應該是「重置密碼郵件」
對於AdminUser - >郵件主題應該是「bla bla bla bla」
我如何在我的應用程序上實現這個想法?爲多個用戶類具體郵件其中延伸軌道

回答

1

產生Devise Views將允許你修改的是在其中。這將允許您更改內容,而是爲了轉移話題,你將不得不通過override the Devise mailercreating your own mailer具有色器件使用它。

class MyMailer < ActionMailer::Base 
default :from => "[email protected]" 

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" 
+0

我認爲類MyMailer <::的ActionMailer基礎應該是一流的MyMailer <制定::梅勒 – user1609468

+0

如果要覆蓋設計郵件本身和使用建在輔助方法,你可以做到這一點。雖然這可能比它值得更麻煩,因爲你只想改變主題。創建您自己的郵件程序允許您跳過使用Devise的內置助手來轉換資源(您必須格式化以使用設計助手)。作爲參考的郵件輔助方法:https://github.com/plataformatec/devise/blob/master/lib/devise/mailers/helpers.rb使用你自己的,當然郵件消除了使用的設計意見等。 –