数値/エポック値を selected_at に割り当てることは、Rails 7.1.0.rc1 では非推奨になりました。
概要
Rails 7.1 にアップグレードすると非推奨の警告が表示され、Google に検索結果がありません。
警告は「非推奨警告: 数値/エポック値を selected_at に割り当てることは非推奨です」です。代わりに Time オブジェクトを使用してください。
これは、wait_until を使用してバックグラウンド ジョブをスケジュールしているときに発生します。テストで渡す値は、時間の値を示す 1.month.from.now です。
警告を発していると思われる行:
NotifyAudienceJob.set(wait_until: published_at).perform_later(audience.id)
警告をトリガーするテスト:
test 'creating audiences for a scheduled article with notifications enabled should schedule notifications' do
@article.update!(published_at: 1.month.from_now)
assert_enqueued_with(job: NotifyAudienceJob) do
post admin_news_feed_article_audiences_url(@article), params: { whole_organisation: true }
end
end
これに対する修正方法について何か提案がある人はいますか?
警告は ActiveJob の次の行からのものです
注: これは Rails 7.1.0.rc2 で修正されました。
解決策
前述したように、このオブジェクトを Time オブジェクトに変換します
1.month.from_now.to_time
現在は Time オブジェクトではありません
1.month.from_now.class # => ActiveSupport::TimeWithZone
1.month.from_now.to_time.class # => Time