[RUBY] 11.2 E-Mail zur Kontoaktivierung senden: Rails Tutorial Notes - Kapitel 11

11.2 E-Mail zur Kontoaktivierung senden

11.2.1 Vorlage für ausgehende E-Mails

Mailer kann mit "Rails Generate" generiert werden (Password_reset wird später verwendet)

$ rails generate mailer UserMailer account_activation password_reset 

Das Produkt ist

      create  app/mailers/user_mailer.rb #Definieren Sie hier so etwas wie eine Aktion
      invoke  erb
      create    app/views/user_mailer
      create    app/views/user_mailer/account_activation.text.erb #Mail-Layout (Text)
      create    app/views/user_mailer/account_activation.html.erb #Mail-Layout (HTML)

ERB kann für das Layout verwendet werden

edit_account_activation_url(@user.activation_token, email: @user.email)

Und nimm zwei Argumente Gibt einen Pfad wie den folgenden zurück

/account_activations/(1. Argument)/edit?(2. Argument)

Die folgenden werden als ** Abfrageparameter ** bezeichnet Geschrieben als Schlüssel / Wert-Paar mit "? Email = ..."

Machen Sie die Ansichtsdatei mit dem obigen URL-Helfer eingebettet

** Instanzvariablen **, ** Ziel **, ** Titel **, die in Ansichtsdateien verwendet werden Definiert in app / mailers / user_mailer.rb`

  def account_activation(user)
    @user = user
    mail to: user.email, subject: "Account activation"
  end

11.2.2 Vorschau ausgehender E-Mails

Wenn Sie dem Verfahren folgen Sie können eine Vorschau im Browser anzeigen

11.2.3 Test für ausgehende E-Mails

Der Test ist bereits unten beschrieben Ursache von $ Rails Test> (ROT)

test/mailers/user_mailer_test.rb
require 'test_helper'

class UserMailerTest < ActionMailer::TestCase
  test "account_activation" do
    mail = UserMailer.account_activation
    assert_equal "Account activation", mail.subject
    assert_equal ["[email protected]"], mail.to
    assert_equal ["[email protected]"], mail.from
    assert_match "Hi", mail.body.encoded
  end
.
.
.
end

config/environments/test.rb


Rails.application.configure do
  .
  .
  .
  config.action_mailer.delivery_method = :test
  config.action_mailer.default_url_options = { host: 'example.com' } #Richten Sie einen Host für die Testumgebung ein
  .
  .
  .
end

Es sollte "$ Rails Test" sein> (GRÜN)

    assert_equal ["[email protected]"], mail.from

Nach dem Reparieren

Es wurde $ Rails Test> (GRÜN)

11.2.4 Aktion zum Erstellen von Benutzern aktualisiert

Ändern Sie die Aktion "Erstellen"

	def create
    @user = User.new(user_params)
    if @user.save
      UserMailer.account_activation(@user).deliver_now
      flash[:info] = "Please check your email to activate your account."
      redirect_to root_url
    else
      render 'new'
    end
  end

Da sich das Verhalten ändert, wird es zu "$ Rails Test"> (ROT)

Recommended Posts

11.2 E-Mail zur Kontoaktivierung senden: Rails Tutorial Notes - Kapitel 11
Rails-Tutorial Informationen zur Kontoaktivierung in der Produktionsumgebung
11.1 AccountActivations-Ressource: Rails Tutorial Memorandum-Kapitel 11
Grep? Zusammengeschraubt?: Rails Tutorial Notes - Kapitel 8
Schienen Tutry
Schienen Tutorial
Schienen Tutry
Deshalb habe ich dieses Mal die Methode "Verknüpfen des Inhalts des Verzeichnisses" übernommen. Ich denke, es wird je nach Zeit und Fall richtig verwendet. Tutorial zu Linux, ln, Linux-Befehlsschienen
Schienen Tutorial
Schienen Tutorial
Testen auf Fehlermeldungen: Rails Tutorial Notes-Kapitel 7
Schienen-Tutorial Kapitel 6
Rails Tutorial Test
Schienen-Tutorial Kapitel 1
Rails Tutorial Memorandum 1
Rails Tutorial Memorandum 2
Schienen-Tutorial Kapitel 5
Schienen-Tutorial Kapitel 10
Schienen-Tutorial Kapitel 9
Schienen-Tutorial Kapitel 8
[Anfänger] Rails Tutorial
Ich habe die Ausführung des Rails-Tutorials geändert: Hinweise zum Rails-Tutorial - Kapitel 9
Schienen Tutorial Cheet Sheet
Rails Tutorial Kapitel 3 Lernen
[Rails] Lernen mit Rails Tutorial
Rails-Konto-BAN implementieren
Rails Tutorial Memorandum (Kapitel 3, 3.1)
Rails Tutorial Kapitel 4 Lernen
Rails Tutorial Kapitel 1 Lernen
Rails Tutorial Kapitel 2 Lernen
Schienen Tutorial Fighting Record III