E-Mail an alle Benutzer in Schienen senden

Ich versuche, eine Methode zu erstellen, die beim Aufruf eine E-Mail an alle Benutzer sendet.

Mein letztendliches Ziel ist es, diese Methode über einen Scheduler aufzurufen (ich habe den Scheduler bereits zum Laufen gebracht). Und die Methode wird für alle Benutzer gelten und E-Mails an einige von ihnen senden, wenn einige Voraussetzungen erfüllt sind.

Im Moment möchte ich nur lernen, wie ich einfachste Dinge mache, nämlich jedem Benutzer in der Tabelle eine benutzerdefinierte E-Mail zu senden.

Meine erste Ausgabe ist:

  def send_digest
    @users = User.all
    @users.each do |user|
      @time  = Time.now
      mail(to: user.email, subject: user.name)
    end
  end

Diese Methode (in app / mailer / user_mailer.rb) sendet nur eine E-Mail an den Kerl mit der größten ID in der Tabelle. Warum das?

Was muss ich auch tun, um auf die Variable "user.name" in der E-Mail zuzugreifen?

BEARBEITEN: Gibt es eine bessere Möglichkeit, auf die Benutzervariable im Mailtext zuzugreifen, als @user = user?

  def send_digest(user)
    @time  = Time.now
    @user = user
    mail(to: user.email, subject: 'mail message')
  end

Antworten auf die Frage(1)

Ihre Antwort auf die Frage