У меня есть модель соглашения, и в ней есть столбец released_at
.Я хочу подтвердить, что соглашение может быть выпущено один раз. Как я могу это сделать?
Контроллер:
# GET /aggreements/1/release
def release
@agreement.update(released_at: Time.now.utc)
if @agreement.save
render json: {success: ["Agreement released."]}
else
render json: @agreement.errors, status: :unprocessable_entity
end
end
Модель:
class Agreement < ApplicationRecord
validate :released_agreement_cannot_be_released
def released_agreement_cannot_be_released
if released_at.present?
errors.add(:released_at, "already released")
end
end
end
Спасибо.