2017-01-13 53 views
1

我有這樣的設置,用於在註冊後向新用戶發送電子郵件。現在它發送一封電子郵件給任何新用戶。Rails ActionMailer:只有@user擁有is_admin時才發送電子郵件

class UserMailer < ActionMailer::Base 
    def welcome_email(user) 
    @user = user 
    mail(to: @user.email, 
     from: "Thinkrtc", 
     subject: "Welcome To Thinkrtc" 
    ) 
    end 
end 

我也有第二種方式用戶可以註冊,它有一個is_admin布爾值。所以,當他們以第二種方式註冊時,他們得到的is_admin是真正的布爾值。

我想在此設置我的UserMailer,只將它發送給第二種方式創建新帳戶的人,並獲取is_admin =「true」。

+0

'is_admin'是一個模型屬性?如果是這樣,你可以在頂部放一個'return,除非@ user.is_admin'。但我認爲我沒有正確理解...... – mrlew

+0

@mrlew它是在計劃中:http://image.prntscr.com/image/301a780f7b454277a8453783b1f36d6b.png – Raidspec

+0

如果你想繞過電子郵件發送,你應該簡單地返回該方法,就像我之前說過的。是嗎?或者我誤解了? – mrlew

回答

-2
class UserMailer < ActionMailer::Base 
    def welcome_email(user) 
    @user = user 
    if @user.is_admin 
     mail(to: @user.email, 
     from: "Thinkrtc", 
     subject: "Welcome To Thinkrtc" 
    ) 
    end 
    end 
end 

如果用戶有is_admin == true,這將發送一封電子郵件。

+1

這工作,並感謝您編輯卡爾。 – Raidspec

相關問題