2009/11/25 Leonardo Gallucci <[email protected]>: > Tengo otra duda respecto de esto, aunque la pregunta inicial era estricta de > Ruby, salió el tema Rails que me pareció muy interesante, aquí viene: > > En un controller tenemos el tipico: > class UsersController < ApplicationController > def index > @usuarios = User.all > end > > Luego la vista, digamos index.html.erb > Donde se puede acceder a @usuarios > <% @usuarios.each do |amiguito| %> > ... etc ... > > La pregunta: > ¿Como es posible que pueda acceder a @usuarios desde la vista si @ es para > variables privadas de la clase? (en este caso la clase sería heredada de > ApplicationController mientras que la vista es otro objeto que supongo > hereda de ActionView::Base)
Respuesta corta: porque rails es una mierda. Respuesta menos corta: porque rails es una verdadera mierda. Respuesta que vale algo: básicamente, lo que rails hace es, al instanciar el objeto ActionView::Base donde va a cargar los datos de la vista, es iterar por todas las variables de instancia del controller, filtrar las que son internas a la implementación de los controllers, y meterlas en la vista. De esa forma, tu template ERB (o lo que sea) tiene los valores de las ivars copiados. > s2 > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
