Neural codes are binary codes that are used for information processing and representation in the brain. In previous work, we have shown how an algebraic structure, called the neural ring, can be used to efficiently encode geometric and combinatorial properties of a neural code (Curto et al., Bull Math Biol 75(9), 2013). In this work, we consider maps between neural codes and the associated homomorphisms of their neural rings. In order to ensure that these maps are meaningful and preserve relevant structure, we find that we need additional constraints on the ring homomorphisms. This motivates us to define neural ring homomorphisms. Our main results characterize all code maps corresponding to neural ring homomorphisms as compositions of five elementary code maps. As an application, we find that neural ring homomorphisms behave nicely with respect to convexity. In particular, if C and D are convex codes, the existence of a surjective code map C→ D with a corresponding neural ring homomorphism implies that the minimal embedding dimensions satisfy d(D) ≤ d(C).