Tengo un montón de controladores con métodos que rinden la vista de índice. Esto me lleva a escribir render :index
al final de la mayoría de los métodos. He aquí un ejemplo¿Cómo puedo SECAR todas estas llamadas para renderizar: índice?
def index
@models = Model.find(:all)
end
def new_models
@models = Model.find_by_new(true)
render :index
end
def old_models
@models = Model.find_by_new(false)
render :index
end
Idealmente, me gustaría simplemente mover el código de render en un filtro final, pero como el controlador hace una llamada para hacer antes de ir a después de filtro que no es una opción.
Tengo una gran cantidad de controladores como este, así que una solución eliminaría una gran cantidad de código repetido.
Esta aplicación se encuentra actualmente en Rails 2.3, sin embargo, se actualizará a Rails 3 en el próximo mes o dos. Así que, aunque preferiría una técnica que funciona en 2.3, las soluciones únicas de Rails 3 aún serían apreciadas.
Sólo una nota, trate de evitar connascencia del significado medida de lo posible. (acabo * había * a usar esa 'palabra' para día, porque acabo de aprender sobre la connotación **: D **) Ver http://scotland-on-rails.s3.amazonaws.com/1A03_JimWeirich-SOR.mp4 si está interesado – Zabba
Fue una muy buena charla. Gracias por compartirlo. Mi ejemplo no es ningún código que haya escrito realmente. Sin embargo, estaba sacando un código aleatorio sin mucho para el ejemplo. Me alegro de haberlo hecho así, de lo contrario, quizás nunca hubiera aprendido sobre la connivencia :-) –