邀请所有用户链接在Rails链接中

时间:2018-10-15 16:04:32

标签: ruby-on-rails

我定义了一个功能,当我们单击“发送邀请电子邮件”时,它可以向200位父母发送电子邮件。我面临的问题是,当我单击发送邀请电子邮件时,我收到一条消息“邀请电子邮件已经发送给所有人”。但是有许多父母尚未发送电子邮件。

parents_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 :(得分:1)

问题出在您选择父母的方式上,您写着email: !nil。 在滑轨中,!niltrue。 因此,您正在寻找电子邮件值为true的父母。您应该写:

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

我替换了 .where(email: !nil).where.not(email: nil)