在Rails Mailer中,您可以通过以下方式将参数发送到mailer:with()
参数:
Class MyMailer
def send_something
@user = User.find(params[:user_id])
..
end
end
MyMailer.with(user_id: user.id).send_something.deliver_now
字符串
或者直接在方法调用中:
Class MyMailer
def send_something(user_id)
@user = User.find(user_id)
..
end
end
MyMailer.send_something(user.id).deliver_now
型
这些方法中的一种是首选的吗?当邮件程序被后台作业(如sidekiq,它将所有参数序列化到redis)排队时,有什么优点或缺点吗?我注意到https://guides.rubyonrails.org/action_mailer_basics.html,他们只展示了with()params方法来做到这一点。这些方法中的一种是旧的风格吗?
1条答案
按热度按时间qv7cva1a1#
使用params是为了在方法之间共享各种东西。ActionMailer::Parameterized API用一个例子解释了这一点。
提供参数化邮件程序的选项,以便共享示例变量设置、处理和公共头。
指南中没有描述。