Antes de comenzar este articulo solo contarles que asi es Rails, es un framework que necesita que quienes quieran aprenderlo, esten preparados para aprender mucho (Bueno claro, como cualquier otro framework o lenguaje), pero este siempre (o mas bien su comunidad) te va a llevar por las buenas practicas.

Y en el séptimo día finalmente descansamos
La importancia de entender CRUD y REST es porque en la versión 2.0 de Ruby on Rails, una de sus mejoras es que REST se convertirá en parte del core y todas sus convenciones serán parte del framework. Es por esto que debemos entenderlo, aplicarlo, probarlo y empezar a disfrutar de esta forma de desarrollo. Para los desarrolladores de software expertos, académicos, entre otros, este tipo de practicas pueden ser detalles, pero para quienes no tenemos una formación rigida en desarrollo de software (Años de estudios universitarios), debemos ir comprendiendo por nosotros.
CRUD es un termino bastante desconocido especialmente para quienes no les es tan familiar trabajar con bases de datos para (nosotros) los simples mortales es un estándar para:
Crear (CREATE)
Leer (READ)
Actualizar (UPDATE)
Eliminar (DELETE)
Si de dan cuenta son básicamente las 4 operaciones que se hacen en una base de datos, todo lo demás son mezclas de las anteriores. CRUD es una forma de pensar, es una arquitectura “mental” que te permite ocupar tu mente para cosas que agreguen valor a tus creaciones y no pensar nuevamente lo que ya ha sido pensado. Esa es la base de Rails y parte de la primicia que todo desarrollo, tiene solo un 20% de creación propia y el resto todo ya lo ha echo alguien, para que hacerlo, si alguien ya lo hizo?
CRUD libera tu menta para esto, y en RAILS tiene 7 metodos que TIENES que recordarlos y utilizarlos, porque en REST no existen otros. A continuación, te mostrare lo que serán tus verbos de ahora en adelante, todo lo que hagas deberás conjugarlo con esto.
def list (Muestra todos los itemes de un modelo)
def show (Muestra un item en especifico)
def new (Muestra un formulario para crear un nuevo registro)
def create (Crea el nuevo registro)
def edit (Formulario para editar un registro)
def update (Actualiza el nuevo registro)
def destroy (Elimina un registro)
Si se dan cuenta aparecen 3 nuevos métodos (show, new y edit) que no actúan directamente con la base de datos pero son los responsables de mostrar el html necesario para mostrar itemes específicos, crear nuevo registro o editarlo. De aqui en adelante tendrás que vivir con estos métodos, hacerlo parte de tu lenguaje y hacerte amigos de ellos.
Finalmente tienes que hacerlos coincidir con tus controladores y modelos, dejarlos lo mas limpios y para esto considerar siempre que todas las acciones de un método deben estar en el mismo nivel de abstracción, que quiero decir con esto: Que mantengas tus controladores limpios y si necesitar hacer acciones contra la base de datos, hacelos en el modelo y no en el controlador.