【问题标题】:Missing template user_mailer/registration_confirmation with "mailer" in Rails 4在 Rails 4 中缺少带有“mailer”的模板 user_mailer/registration_confirmation
【发布时间】:2013-08-24 12:53:17
【问题描述】:

我正在学习使用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

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

<%= @user.name %>,

Thank you for registering!

Edit profile: <%= edit_user_url(@user) %>

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>

app/controllers/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

用户注册时,理论上应该会收到一封邮件,但事实证明:

模板丢失

Missing template user_mailer/registration_confirmation with "mailer". Searched in: * "user_mailer"

【问题讨论】:

    标签: ruby-on-rails email


    【解决方案1】:

    registration_confirmation.html.rb ?查看文件应以 erb 结尾。

    将视图文件名重命名为:

    registration_confirmation.html.erb # HTML format
    registration_confirmation.text.erb # Plain text format
    

    【讨论】:

      【解决方案2】:

      看起来问题出在文件扩展名上,是erb 而不是rb

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        • 2016-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多