2017-01-13 6 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, это true boolean.

Я хочу настроить свой UserMailer там, чтобы отправлять его только тем людям, которые создают новую учетную запись на втором пути и получает is_admin = "true".

+0

'is_admin' является атрибутом модели? если это так, вы можете поместить 'return if @ 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