Вы можете создать метод, подобный Marek's, для проверки правильности ключа перед обновлением:
def self.validate_status(some_status)
ModelName.statuses.keys.include?(some_status.to_sym)
end
или вы можете спасти ArgumentError
из вашего ApiController
(если вы используете API) с помощью чего-то вроде:
rescue_from ArgumentError, with: :render_status_error
def render_status_error(exception)
logger.info(exception)
render json: { error: 'Invalid status' }, status: :bad_request
end