Ссылка на приглашение для всех пользователей в ссылке на рельсы - PullRequest
0 голосов
/ 15 октября 2018

Я определил функцию, которая отправляет электронную почту 200 родителям, когда мы нажимаем на кнопку «Отправить приглашение по электронной почте».Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на кнопку «Отправить электронное письмо с приглашением», я получаю сообщение «Электронное письмо с приглашением уже отправлено всем»Но есть много родителей, которым электронное письмо не было отправлено.

parent_controller.rb

def send_email_to_everyone
    @parents = Parent.where(invitation_email_sent: false, admin: false, email: !nil).limit(200)
    # puts @parents.length
    if @parents.length > 0
        @parents.each do |parent|
            parent.create_reset_digest
            ParentMailer.invitation_confirmation(parent).deliver
            parent.update_attributes(invitation_email_sent: true)
        end
          flash[:success] = "Invitation email has been sent to all."
          redirect_to main_admin_path
        else
          flash[:success] = "Invitation email have already been sent to all"
          redirect_to main_admin_path           
        end
    end

main_admin.html.erb

<%= link_to "Send Invitation Email", send_email_to_everyone_path, class: "btn btn-info btn-2x" %>

1 Ответ

0 голосов
/ 15 октября 2018

Проблема в том, как вы выбираете своих родителей, вы пишете email: !nil.В рельсах !nil есть true.Итак, вы ищете родителей, чья электронная почта имеет значение true.Вы должны написать:

    @parents = Parent.where(invitation_email_sent: false, admin: false).where.not(email: nil).limit(200)

Я заменил .where(email: !nil) на .where.not(email: nil)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...