ruby-on-rails 直接在方法上使用()params vs Parameters的Rails Mailer

rwqw0loc  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(126)

在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方法来做到这一点。这些方法中的一种是旧的风格吗?

qv7cva1a

qv7cva1a1#

使用params是为了在方法之间共享各种东西。ActionMailer::Parameterized API用一个例子解释了这一点。
提供参数化邮件程序的选项,以便共享示例变量设置、处理和公共头。
指南中没有描述。

相关问题