Ruby on rails 延迟::作业丢失活动记录关系,但改为数组
我正在上发送电子邮件的职业课。我正在将集合(活动记录关系对象,假设Ruby on rails 延迟::作业丢失活动记录关系,但改为数组,ruby-on-rails,activerecord,delayed-job,Ruby On Rails,Activerecord,Delayed Job,我正在上发送电子邮件的职业课。我正在将集合(活动记录关系对象,假设@payments=Payment.where(状态:'pending')传递给Mailer类的参数 Delayed::Job.enqueue( EmailJob.new( 公司:目前的公司, 类型::付款, 收款:@payments#Payment::ActiveRecord_关系 ), 目标:“付款电子邮件”, 公司:现有公司 ) 我面临的问题是,当工人选择工作时,收款被视为付款的数组,我希望这是一个activerecord
@payments=Payment.where(状态:'pending')
传递给Mailer类的参数
Delayed::Job.enqueue(
EmailJob.new(
公司:目前的公司,
类型::付款,
收款:@payments#Payment::ActiveRecord_关系
),
目标:“付款电子邮件”,
公司:现有公司
)
我面临的问题是,当工人选择工作时,收款被视为付款的数组,我希望这是一个activerecord收款对象,这样我就可以在上面做一些事情
默认情况下,ActiveJob支持以下类型的参数:
- 基本类型(NilClass、String、Integer、Float、BigDecimal、TrueClass、FalseClass)
- 象征
- 日期
- 时间
- 日期时间
- ActiveSupport::TimeWithZone
- ActiveSupport::持续时间
- 散列(键应为字符串或符号类型)
- ActiveSupport::HashWithInferenceTaccess
- 排列
- 模块
- 阶级
-
当您传递一个ActiveRecord::Relation
时,Rails将通过将其强制转换为一个数组来序列化它,因为它不是受支持的类型。ActiveJob确实使用GlobalId来传递单个记录,但似乎更好的选择可能只是创建一个关联或其他方法来获取给定公司的作业中的付款。
另见