2017-01-13 55 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

相关问题