在Rails 4中缺少带有"邮件程序"的模板user_mailer/registration_confirmation

jsv*_*isa 9 email ruby-on-rails

我正在学习使用Railscast#206发送电子邮件.本教程使用Rails 3,但我使用的是Rails 4.

应用程序/邮寄/ user_mailer.rb:

class UserMailer < ActionMailer::Base
    default from: "ryan@railscast.com"

    def registration_confirmation(user)
        @user = user
        mail(:to => "#{user.name}", :subject => "Registered")
    end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/ user_mailer文件/ registration_confirmation.text.rb:

<%= @user.name %>,

Thank you for registering!

Edit profile: <%= edit_user_url(@user) %>
Run Code Online (Sandbox Code Playgroud)

app/views/user_mailer/registration_confirmation.html.rb:

<p><%= @user.name %>,</p>

<p>Thank you for registering!</p>

<p><%= link_to "Edit profile", edit_user_url(@user) %></p>
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/ users_controller.rb:

class UsersController < ApplicationController
  ......
  def create
    @user = User.new(user_params)
    if @user.save 
      sign_in @user
      flash[:success] = "Welcome"
      UserMailer.registration_confirmation(@user).deliver
      redirect_to @user
    else
      render 'new'
    end
  end
 ......
end
Run Code Online (Sandbox Code Playgroud)

当用户注册时,他应该在理论上收到一封电子邮件,但事实证明:

模板丢失了

Missing template user_mailer/registration_confirmation with "mailer". Searched in: * "user_mailer"
Run Code Online (Sandbox Code Playgroud)

And*_*nic 12

registration_confirmation.html.rb?视图文件应以erb结尾.

将视图文件名重命名为:

registration_confirmation.html.erb # HTML format
registration_confirmation.text.erb # Plain text format
Run Code Online (Sandbox Code Playgroud)