Techioz Blog

非推奨の警告: エラーを追加するための ActiveModel::Errors メッセージ配列の呼び出しは非推奨です。ルビーで

概要

ルビー - 2.7.3 レール - 6.1.3.2

非推奨の警告: エラーを追加するために ActiveModel::Errors メッセージ配列に << を呼び出すことは非推奨です。代わりにActiveModel::Errors#addを呼び出してください。 (/var/home/application_name/app/models/contacts.rb:4 の validate から呼び出されます)

1.class AssociatedProgramValidator < ActiveModel::Validator
2.  def validate(record)
3.    unless record.user.programs.pluck(:name).include? record.program_name
4.      record.errors[:program_id] << "No #{record.program_name} found on user"
5.    end
6.  end
7.end
8.
9.class Contacts < ApplicationRecord
10.
11.  include ActiveModel::Validations
12.end

何か提案をしてください。

解決策

おそらく次のようになると思います。

Record.errors.add(:program_id, メッセージ: “ユーザーに #{record.program_name} が見つかりません”)

https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://api.rubyonrails.org/v6.1.3/classes/ActiveModel/Errors.html#method-i-add