[OK]を、私はタイヤという名前のモデルを持っていると私はいくつかの予約名レールで保存された値を取得するにはどうすればよいですか?
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」へのユーザーの更新です。そのため、self.nameはDBに保存されている「Michelinn」ではなく「Michelinnnn」であるため、更新が許可されます。これに対処するためのアイデア
コールバック内のIDを使用して既存のデータベースレコードを読み取り、比較しますか? Leventixが提案したように、name_wasを使用してください。 – Trace
はあなたのことができないこのような状況に制約を追加する方法を
–