Action Mailer变量定义说明

时间:2015-04-13 18:32:20

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试完全理解每个文档中显示的动作邮件程序中的一行代码,但没有真正解释过。

def welcome_email(user)
 @user = user #don't understand exactly which user this is
 mail(to: @user.email, subject: 'Do you have any spam?')
end

我认为您必须定义该变量,如User.find(params [:id])或User.first或其他检索特定用户的变量。简单的“用户”在这种情况下意味着什么?

感谢您对此初学者问题的帮助。

1 个答案:

答案 0 :(得分:1)

@user = user

这一行将@user实例变量的值设置为user,它作为变量传递给welcome_email方法。

可以在链接到此邮件程序的视图中访问

@user实例变量。

无论何时调用welcome_email方法,都可能使用useruser = User.find(params[:id])或类似内容设置user = User.first的值,并user 1}}作为带welcome_email(user)调用的参数传入。

假设邮件被称为Notifier,并且在用户注册时必须发送欢迎电子邮件,则以下代码可能位于app/controllers/users_controller.rb文件中:

class UsersController < ApplicationController
  ...
  def create
    ...
    @user = ...
    Notifier.welcome_email(@user).deliver_now
    ...
  end
  ...
end