每个用户登录时,系统会根据 URL 设置 Locale, 之前使用 sidekiq 异步发送邮件,Sidekiq 可以保存当前的 Locale, 然后在实际发送时,使用保存的 Locale 发邮件。
现在升级到 Rails 4.2.1,系统默认使用 ActiveJob,activeJob 没有这样机制,我不想在把 Locale 作为参数传进去(修改的地方太多)
有没有什么好办法?
Sidekiq 保存当前的 Locale 是什么原理?用作 ActiveJob 的后端的时候失效了吗?
Sidekiq 是用一个类似插件的机制,处理了下,具体请参阅
https://github.com/mperham/sidekiq/blob/master/lib/sidekiq/middleware/i18n.rb
https://github.com/rails/rails/blob/master/activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb
ActiveJob 使用 Sidekiq 后端的时候,最终是塞进 Sidekiq::Worker 里面,我猜测这个扩展依然能用。
@rei , 没错,现在是 OK 的,之前是我遗漏了某个 Mailer 的本地化,误以为是升级 ActiveJob 的问题。
谢谢!