我正在尝试完全理解每个文档中显示的动作邮件程序中的一行代码,但没有真正解释过。
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或其他检索特定用户的变量。简单的“用户”在这种情况下意味着什么?
感谢您对此初学者问题的帮助。
答案 0 :(得分:1)
@user = user
这一行将@user
实例变量的值设置为user
,它作为变量传递给welcome_email
方法。
@user
实例变量。
无论何时调用welcome_email
方法,都可能使用user
或user = 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