タイヤという名前のモデルがあり、いくつかの予約済みの名前の名前フィールドを更新できません
class Tire < ActiveRecord::Base
RESERVED_TIRES = ['Michelin', 'Good Year', 'Firestone']
before_update :reserved_tires
def reserved_tires
if RESERVED_TIRES.include?(self.name)
self.errors.add(:base, "Cant be changed")
false
end
end
end
そして、ユーザーがフィールドを更新できないようにする必要があります。現在の名前は予約語に含まれています...これは、ユーザーが名前を更新するとき以外のすべてのフィールドで機能します。
たとえば、ユーザーが「Michelinnnn」に更新すると、DB に保存されている「Michelin」ではなく、self.name が「Michelinnnn」であるため、更新が許可されます。これに対処する方法についてのアイデア